ConfigurableField¶
- 
class lsst.pex.config.ConfigurableField(doc, target, ConfigClass=None, default=None, check=None)¶
- Bases: - lsst.pex.config.Field- A configuration field ( - Fieldsubclass) that can be can be retargeted towards a different configurable (often a- lsst.pipe.base.Tasksubclass).- The - ConfigurableFieldis often used to configure subtasks, which are tasks (- Task) called by a parent task.- Parameters: - doc : str
- A description of the configuration field. 
- target : configurable class
- The configurable target. Configurables have a - ConfigClassattribute. Within the task framework, configurables are- lsst.pipe.base.Tasksubclasses)
- ConfigClass : lsst.pex.config.Config-type, optional
- The subclass of - lsst.pex.config.Configexpected as the configuration class of the- target. If- ConfigClassis unset then- target.ConfigClassis used.
- default : ConfigClass-type, optional
- The default configuration class. Normally this parameter is not set, and defaults to - ConfigClass(or- target.ConfigClass).
- check : callable, optional
- Callable that takes the field’s value (the - target) as its only positional argument, and returns- Trueif the- targetis valid (and- Falseotherwise).
 - See also - ChoiceField,- ConfigChoiceField,- ConfigDictField,- ConfigField,- DictField,- Field,- ListField,- RangeField,- RegistryField- Notes - You can use the - ConfigurableInstance.applymethod to construct a fully-configured configurable.- Attributes Summary - supportedTypes- Methods Summary - freeze(instance)- Make this field read-only (for internal use only). - rename(instance)- Rename the field in a - Config(for internal use only).- save(outfile, instance)- Save this field to a file (for internal use only). - toDict(instance)- Convert the field value so that it can be set as the value of an item in a - dict(for internal use only).- validate(instance)- Validate the field (for internal use only). - validateTarget(target, ConfigClass)- Validate the target and configuration class. - Attributes Documentation - 
supportedTypes= {<class 'complex'>, <class 'bool'>, <class 'int'>, <class 'str'>, <class 'float'>}¶
 - Methods Documentation - 
freeze(instance)¶
- Make this field read-only (for internal use only). - Parameters: - instance : lsst.pex.config.Config
- The config instance that contains this field. 
 - Notes - Freezing is only relevant for fields that hold subconfigs. Fields which hold subconfigs should freeze each subconfig. - Subclasses should implement this method. 
- instance : 
 - 
rename(instance)¶
- Rename the field in a - Config(for internal use only).- Parameters: - instance : lsst.pex.config.Config
- The config instance that contains this field. 
 - Notes - This method is invoked by the - lsst.pex.config.Configobject that contains this field and should not be called directly.- Renaming is only relevant for - Fieldinstances that hold subconfigs.- Fieldsthat hold subconfigs should rename each subconfig with the full field name as generated by- lsst.pex.config.config._joinNamePath.
- instance : 
 - 
save(outfile, instance)¶
- Save this field to a file (for internal use only). - Parameters: - Notes - This method is invoked by the - Configobject that contains this field and should not be called directly.- The output consists of the documentation string ( - lsst.pex.config.Field.doc) formatted as a Python comment. The second line is formatted as an assignment:- {fullname}={value}.- This output can be executed with Python. 
 - 
toDict(instance)¶
- Convert the field value so that it can be set as the value of an item in a - dict(for internal use only).- Parameters: - Returns: - value : object
- The field’s value. See Notes. 
 - Notes - This method invoked by the owning - Configobject and should not be called directly.- Simple values are passed through. Complex data structures must be manipulated. For example, a - Fieldholding a subconfig should, instead of the subconfig object, return a- dictwhere the keys are the field names in the subconfig, and the values are the field values in the subconfig.
 - 
validate(instance)¶
- Validate the field (for internal use only). - Parameters: - instance : lsst.pex.config.Config
- The config instance that contains this field. 
 - Raises: - lsst.pex.config.FieldValidationError
- Raised if verification fails. 
 - Notes - This method provides basic validation: - Ensures that the value is not Noneif the field is not optional.
- Ensures type correctness.
- Ensures that the user-provided checkfunction is valid.
 - Most - Fieldsubclasses should call- lsst.pex.config.field.Field.validateif they re-implement- validate.
- instance : 
 - 
validateTarget(target, ConfigClass)¶
- Validate the target and configuration class. - Parameters: - target
- The configurable being verified. 
- ConfigClass : lsst.pex.config.Config-type orNone
- The configuration class associated with the - target. This can be- Noneif- targethas a- ConfigClassattribute.
 - Raises: - AttributeError
- Raised if - ConfigClassis- Noneand- targetdoes not have a- ConfigClassattribute.
- TypeError
- Raised if - ConfigClassis not a- Configsubclass.
- ValueError
- Raised if: - targetis not callable (callables have a- __call__method).
- targetis not startically defined (does not have- __module__or- __name__attributes).
 
 
 
- doc :