DictField#
- class lsst.pex.config.DictField(doc, keytype=None, itemtype=None, default=None, optional=False, dictCheck=None, keyCheck=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, andstr). All keys share the same type and all values share the same type. Keys can have a different type from values.Parameters#
- doc
str 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.
- default
dict, optional The default mapping.
- optional
bool, optional If
True, the field doesn’t need to have a set value.- dictCheckcallable
A function that validates the dictionary as a whole.
- keyCheckcallable
A function that validates individual mapping keys.
- 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.
See Also#
ChoiceField ConfigChoiceField ConfigDictField ConfigField ConfigurableField Field ListField RangeField RegistryField
Examples#
This field maps has
strkeys andintvalues:>>> 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}
Methods Summary
toDict(instance)Convert this field's key-value pairs into a regular
dict.validate(instance)Validate the field's value (for internal use only).
Methods Documentation
- toDict(instance)#
Convert this field’s key-value pairs into a regular
dict.Parameters#
- instance
lsst.pex.config.Config The configuration that contains this field.
Returns#
- result
dictorNone If this field has a value of
None, then this method returnsNone. Otherwise, this method returns the field’s value as a regular Pythondict.
- instance
- validate(instance)#
Validate the field’s value (for internal use only).
Parameters#
- instance
lsst.pex.config.Config The configuration that contains this field.
Raises#
- lsst.pex.config.FieldValidationError
Raised if validation fails for this field (see Notes).
Notes#
This method validates values according to the following criteria:
A non-optional field is not
None.If a value is not
None, it must pass theConfigField.dictCheckuser callback function.
Individual key and item checks by the
keyCheckanditemCheckuser callback functions are done immediately when the value is set on a key. Those checks are not repeated by this method.- instance
- doc