def __init__(self, default, ro=False, index=None, value=None, name=None, doc=None, **kwargs): """Specify a Parameter with a default value and arbitrary number of additional attributes. Parameters ---------- name : str Name of the parameter under which it should be available in its respective collection. doc : str Documentation about the purpose of this parameter. index : int or None Index of parameter among the others. Determines order of listing in help. If None, order of instantiation determines the index. ro : bool Either value which will be assigned in the constructor is read-only and cannot be changed value Actual value of the parameter to be assigned """ # XXX probably is too generic... # and potentially dangerous... # let's at least keep track of what is passed self._additional_props = [] for k, v in kwargs.iteritems(): self.__setattr__(k, v) self._additional_props.append(k) self.__default = default self._ro = ro # needs to come after kwargs processing, since some debug statements # rely on working repr() # value is not passed since we need to invoke _set with init=True # below IndexedCollectable.__init__( self, index=index, # value=value, name=name, doc=doc) self._isset = False if value is None: self._set(self.__default, init=True) else: self._set(value, init=True) if __debug__: if 'val' in kwargs: raise ValueError, "'val' property name is illegal."
def __init__(self, default, ro=False, index=None, value=None, name=None, doc=None, **kwargs): """Specify a Parameter with a default value and arbitrary number of additional attributes. Parameters ---------- name : str Name of the parameter under which it should be available in its respective collection. doc : str Documentation about the purpose of this parameter. index : int or None Index of parameter among the others. Determines order of listing in help. If None, order of instantiation determines the index. ro : bool Either value which will be assigned in the constructor is read-only and cannot be changed value Actual value of the parameter to be assigned """ # XXX probably is too generic... # and potentially dangerous... # let's at least keep track of what is passed self._additional_props = [] for k, v in kwargs.iteritems(): self.__setattr__(k, v) self._additional_props.append(k) self.__default = default self._ro = ro # needs to come after kwargs processing, since some debug statements # rely on working repr() # value is not passed since we need to invoke _set with init=True # below IndexedCollectable.__init__(self, index=index, # value=value, name=name, doc=doc) self._isset = False if value is None: self._set(self.__default, init=True) else: self._set(value, init=True) if __debug__: if 'val' in kwargs: raise ValueError, "'val' property name is illegal."
def __reduce__(self): icr = IndexedCollectable.__reduce__(self) # Collect all possible additional properties which were passed # to the constructor state = dict([(k, getattr(self, k)) for k in self._additional_props]) state['_additional_props'] = self._additional_props state.update(icr[2]) res = (self.__class__, (self.__default, self.constraints, self._ro) + icr[1], state) #if __debug__ and 'COL_RED' in debug.active: # debug('COL_RED', 'Returning %s for %s' % (res, self)) return res
def __reduce__(self): icr = IndexedCollectable.__reduce__(self) # Collect all possible additional properties which were passed # to the constructor state = dict([(k, getattr(self, k)) for k in self._additional_props]) state['_additional_props'] = self._additional_props state.update(icr[2]) res = (self.__class__, (self.__default, self._ro) + icr[1], state) #if __debug__ and 'COL_RED' in debug.active: # debug('COL_RED', 'Returning %s for %s' % (res, self)) return res
def __init__(self, default, constraints=None, ro=False, index=None, value=None, name=None, doc=None, **kwargs): """Specify a Parameter with a default value and arbitrary number of additional attributes. Parameters ---------- constraints : callable A functor that takes any input value, performs checks or type conversions and finally returns a value that is appropriate for a parameter or raises an exception. name : str Name of the parameter under which it should be available in its respective collection. doc : str Documentation about the purpose of this parameter. index : int or None Index of parameter among the others. Determines order of listing in help. If None, order of instantiation determines the index. ro : bool Either value which will be assigned in the constructor is read-only and cannot be changed value Actual value of the parameter to be assigned Examples -------- -ensure the parameter to be of type float (None not allowed as value): constraints = EnsureFloat() >>> from mvpa2.base.param import Parameter >>> from mvpa2.base.constraints import (EnsureFloat, EnsureRange, ... AltConstraints, Constraints) >>> C = Parameter(23.0,constraints=EnsureFloat()) -ensure the parameter to be of type float or to be None: >>> C = Parameter(23.0,constraints=AltConstraints(EnsureFloat(), None)) -ensure the parameter to be None or to be of type float and lie in the inclusive range (7.0,44.0): >>> C = Parameter(23.0, AltConstraints(Constraints(EnsureFloat(), ... EnsureRange(min=7.0,max=44.0)), ... None)) """ # XXX probably is too generic... # and potentially dangerous... # let's at least keep track of what is passed self._additional_props = [] for k, v in kwargs.iteritems(): self.__setattr__(k, v) self._additional_props.append(k) self.__default = default self._ro = ro self.constraints = expand_contraint_spec(constraints) # needs to come after kwargs processing, since some debug statements # rely on working repr() # value is not passed since we need to invoke _set with init=True # below IndexedCollectable.__init__(self, index=index, # value=value, name=name, doc=doc) self._isset = False if value is None: self._set(self.__default, init=True) else: self._set(value, init=True) if __debug__: if 'val' in kwargs: raise ValueError, "'val' property name is illegal."
def __str__(self): res = IndexedCollectable.__str__(self) # it is enabled but no value is assigned yet res += '=%s' % (self.value,) return res
def __str__(self): res = IndexedCollectable.__str__(self) # it is enabled but no value is assigned yet res += '=%s' % (self.value, ) return res
def __init__(self, default, constraints=None, ro=False, index=None, value=None, name=None, doc=None, **kwargs): """Specify a Parameter with a default value and arbitrary number of additional attributes. Parameters ---------- constraints : callable A functor that takes any input value, performs checks or type conversions and finally returns a value that is appropriate for a parameter or raises an exception. name : str Name of the parameter under which it should be available in its respective collection. doc : str Documentation about the purpose of this parameter. index : int or None Index of parameter among the others. Determines order of listing in help. If None, order of instantiation determines the index. ro : bool Either value which will be assigned in the constructor is read-only and cannot be changed value Actual value of the parameter to be assigned Examples -------- -ensure the parameter to be of type float (None not allowed as value): constraints = EnsureFloat() >>> from mvpa2.base.param import Parameter >>> from mvpa2.base.constraints import (EnsureFloat, EnsureRange, ... AltConstraints, Constraints) >>> C = Parameter(23.0, constraints=EnsureFloat()) -ensure the parameter to be of type float or to be None: >>> C = Parameter(23.0, constraints=AltConstraints(EnsureFloat(), None)) -ensure the parameter to be None or to be of type float and lie in the inclusive range (7.0,44.0): >>> C = Parameter(23.0, AltConstraints(Constraints(EnsureFloat(), ... EnsureRange(min=7.0,max=44.0)), ... None)) """ allowedtype = kwargs.pop('allowedtype', None) if allowedtype is not None: warnings.warn( "allowedtype option was deprecated in favor of constraints. " "Adjust your code, provided value '%s' was ignored" % str(allowedtype), category=DeprecationWarning) # XXX probably is too generic... # and potentially dangerous... # let's at least keep track of what is passed self._additional_props = [] for k, v in kwargs.iteritems(): self.__setattr__(k, v) self._additional_props.append(k) self.__default = default self._ro = ro self.constraints = expand_contraint_spec(constraints) # needs to come after kwargs processing, since some debug statements # rely on working repr() # value is not passed since we need to invoke _set with init=True # below IndexedCollectable.__init__( self, index=index, # value=value, name=name, doc=doc) self._isset = False if value is None: self._set(self.__default, init=True) else: self._set(value, init=True) if __debug__: if 'val' in kwargs: raise ValueError, "'val' property name is illegal."