def get_default_value_for(self, name): if not name in self._mapping_from_name_to_value: raise exceptions.CoreException( "tried to get default value of unknown parameter '{0}'".format( name)) raise exceptions.CoreException( "tried to get default value, for a parameter in a parameters memento" )
def reset_from_memento(self, memento): for name in memento.names(): if not name in self._mapping_from_name_to_definition: raise exceptions.CoreException("tried to set unknown parameter '{0}' for a '{1}' object".format(name, type(self._instance()).__name__)) if self.get_parameter(name).is_readonly(): if not getattr(memento, name) == getattr(self, name): raise exceptions.CoreException("tried to change read-only parameter '{0}' for a '{1}' object".format(name, type(self._instance()).__name__)) else: setattr(self, name, getattr(memento, name))
def __init__(self, function = None, type = "string", name = None, sections = (), choices = (), global_options = None): self.specification_method = function if not name is None: self.name = name if not self.specification_method is None: self.__doc__ = self.specification_method.__doc__ self.sections = sections if hasattr(self, type.upper()): self.valuetype = getattr(self, type.upper()) else: raise exceptions.CoreException("'{0}' is not a valid type for option".format(type)) self.validator = self.default_validator self.choices = set(choices) if self.choices: self.validator = self.choice_validator if global_options is None: self.global_options = GlobalOptions.instance() else: self.global_options = global_options
def __setattr__(self, name, value): if not name in self._original._mapping_from_name_to_definition: raise exceptions.CoreException("Could not set unknown parameter '{0}' for a '{1}' object".format(name, type(self._original()).__name__)) try: setattr(self._original, name, self._converter.from_source_to_target(value)) except IncompatibleUnitsException as ex: setattr(self._original, name, value)
def get_default_value_for(self, name): if not name in self._mapping_from_name_to_definition: raise exceptions.CoreException( "tried to get default value of unknown parameter '{0}' for a '{1}' object" .format(name, type(self._instance()).__name__)) definition = self._mapping_from_name_to_definition[name] return definition.get_default_value(self)
def __setattr__(self, name, value): if not name in self._mapping_from_name_to_definition: #~ print "Did you mean to set one of these parameters?\n", \ #~ "\n ".join(self._mapping_from_name_to_definition.keys()) raise exceptions.CoreException("tried to set unknown parameter '{0}' for a '{1}' object".format(name, type(self._instance()).__name__)) self._instance().before_set_parameter() return self.get_parameter(name).set_value(value)
def __getattr__(self, name): #if name.startswith('__'): # return object.__getattribute__(self, name) if not name in self._mapping_from_name_to_definition: raise exceptions.CoreException("tried to get unknown parameter '{0}' for a '{1}' object".format(name, type(self._instance()).__name__)) self._instance().before_get_parameter() return self.get_parameter(name).get_value()
def set_value(self, parameter, object, vector_quantity): if self.set_method is None: raise exceptions.CoreException("Could not set value for parameter '{0}' of a '{1}' object, parameter is read-only".format(self.name, type(object).__name__)) getattr(object, self.set_method)(*vector_quantity) if self.get_method is None: self.stored_value = vector_quantity parameter.is_set = True
def set_value(self, parameter, object, quantity): if self.set_method is None: raise exceptions.CoreException("Could not set value for parameter '{0}' of a '{1}' object, parameter is read-only".format(self.name, type(object).__name__)) irange=getattr(object, self.range_method)() index=numpy.arange(irange[0],irange[1]+1) getattr(object, self.set_method)(index,quantity) if self.get_method is None: self.stored_value = quantity parameter.is_set = True
def set_value(self, parameter, object, quantity): #if self.unit.is_non_numeric() or len(self.unit.base) == 0: # if not isinstance(quantity, quantities.Quantity): # quantity = quantity | self.unit if self.set_method is None: raise exceptions.CoreException("Could not set value for parameter '{0}' of a '{1}' object, parameter is read-only".format(self.name, type(object).__name__)) getattr(object, self.set_method)(quantity) if self.get_method is None: self.stored_value = quantity parameter.is_set = True
def choice_validator(self, value): if not value in self.choices: raise exceptions.CoreException("{0} is not a valid choice for option '{1}', valid values are: {2}".format(value, self.name, sorted(self.choices))) return value
def __getattr__(self, name): if not name in self._mapping_from_name_to_value: raise exceptions.CoreException( "tried to get unknown parameter '{0}'".format(name)) return self._mapping_from_name_to_value[name]