DictField¶
- class lsst.pex.config.DictField(doc, keytype=None, itemtype=None, default=None, optional=False, dictCheck=None, itemCheck=None, deprecated=None)¶
- Bases: - Field[- Dict[- KeyTypeVar,- ItemTypeVar]],- Generic[- KeyTypeVar,- ItemTypeVar]- A configuration field ( - Fieldsubclass) that maps keys and values.- The types of both items and keys are restricted to these builtin types: - int,- float,- complex,- bool, and- str). All keys share the same type and all values share the same type. Keys can have a different type from values.- Parameters:
- docstr
- A documentation string that describes the configuration field. 
- keytype{int,float,complex,bool,str}, optional
- The type of the mapping keys. All keys must have this type. Optional if keytype and itemtype are supplied as typing arguments to the class. 
- itemtype{int,float,complex,bool,str}, optional
- Type of the mapping values. Optional if keytype and itemtype are supplied as typing arguments to the class. 
- defaultdict, optional
- The default mapping. 
- optionalbool, optional
- If - True, the field doesn’t need to have a set value.
- dictCheckcallable
- A function that validates the dictionary as a whole. 
- itemCheckcallable
- A function that validates individual mapping values. 
- deprecatedNone 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. 
 
- doc
 - See also - Examples - This field maps has - strkeys and- intvalues:- >>> from lsst.pex.config import Config, DictField >>> class MyConfig(Config): ... field = DictField( ... doc="Example string-to-int mapping field.", ... keytype=str, itemtype=int, ... default={}) ... >>> config = MyConfig() >>> config.field['myKey'] = 42 >>> print(config.field) {'myKey': 42} - Attributes Summary - 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 this field's key-value pairs into a regular - dict.- validate(instance)- Validate the field's value (for internal use only). - Attributes Documentation - supportedTypes = {<class 'str'>, <class 'bool'>, <class 'int'>, <class 'float'>, <class 'complex'>}¶
- Supported data types for field values ( - setof types).
 - Methods Documentation - freeze(instance)¶
- Make this field read-only (for internal use only). - Parameters:
- instancelsst.pex.config.Config
- The config instance that contains this field. 
 
- instance
 - Notes - Freezing is only relevant for fields that hold subconfigs. Fields which hold subconfigs should freeze each subconfig. - Subclasses should implement this method. 
 - rename(instance)¶
- Rename the field in a - Config(for internal use only).- Parameters:
- instancelsst.pex.config.Config
- The config instance that contains this field. 
 
- instance
 - 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.
 - 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. 
 - validate(instance)¶
- Validate the field’s value (for internal use only). - Parameters:
- instancelsst.pex.config.Config
- The configuration that contains this field. 
 
- instance
- Returns:
 - Notes - This method validates values according to the following criteria: - A non-optional field is not - None.
- If a value is not - None, is must pass the- ConfigField.dictCheckuser callback functon.
 - Individual item checks by the - ConfigField.itemCheckuser callback function are done immediately when the value is set on a key. Those checks are not repeated by this method.