Field¶
- 
class lsst.pex.config.Field(doc, dtype, default=None, check=None, optional=False, deprecated=None)¶
- Bases: - object- A field in a - Configthat supports- int,- float,- complex,- bool, and- strdata types.- Parameters: - doc : str
- A description of the field for users. 
- dtype : type
- The field’s data type. - Fieldonly supports basic data types:- int,- float,- complex,- bool, and- str. See- Field.supportedTypes.
- default : object, optional
- The field’s default value. 
- check : callable, optional
- A callable that is called with the field’s value. This callable should return - Falseif the value is invalid. More complex inter-field validation can be written as part of the- lsst.pex.config.Config.validatemethod.
- optional : bool, optional
- This sets whether the field is considered optional, and therefore doesn’t need to be set by the user. When - False,- lsst.pex.config.Config.validatefails if the field’s value is- None.
- deprecated : None or str, optional
- A description of why this Field is deprecated, including removal date. If not None, the string is appended to the docstring for this Field. 
 - Raises: - ValueError
- Raised when the - dtypeparameter is not one of the supported types (see- Field.supportedTypes).
 - See also - ChoiceField,- ConfigChoiceField,- ConfigDictField,- ConfigField,- ConfigurableField,- DictField,- ListField,- RangeField,- RegistryField- Notes - Fieldinstances (including those of any subclass of- Field) are used as class attributes of- Configsubclasses (see the example, below).- Fieldattributes work like the- propertyattributes of classes that implement custom setters and getters.- Fieldattributes belong to the class, but operate on the instance. Formally speaking,- Fieldattributes are descriptors.- When you access a - Fieldattribute on a- Configinstance, you don’t get the- Fieldinstance itself. Instead, you get the value of that field, which might be a simple type (- int,- float,- str,- bool) or a custom container type (like a- lsst.pex.config.List) depending on the field’s type. See the example, below.- Examples - Instances of - Fieldshould be used as class attributes of- lsst.pex.config.Configsubclasses:- >>> from lsst.pex.config import Config, Field >>> class Example(Config): ... myInt = Field("An integer field.", int, default=0) ... >>> print(config.myInt) 0 >>> config.myInt = 5 >>> print(config.myInt) 5 - Attributes Summary - supportedTypes- Supported data types for field values ( - setof types).- 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). - Attributes Documentation - 
supportedTypes= {<class 'int'>, <class 'str'>, <class 'bool'>, <class 'complex'>, <class 'float'>}¶
- Supported data types for field values ( - setof types).
 - 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 : 
 
- doc :