ConfigDictField¶
- class lsst.pex.config.ConfigDictField(doc, keytype, itemtype, default=None, optional=False, dictCheck=None, itemCheck=None, deprecated=None)¶
Bases:
DictField
A configuration field (
Field
subclass) that is a mapping of keys toConfig
instances.ConfigDictField
behaves likeDictField
except that theitemtype
must be aConfig
subclass.- Parameters:
- doc
str
A description of the configuration field.
- keytype{
int
,float
,complex
,bool
,str
} The type of the mapping keys. All keys must have this type.
- itemtype
lsst.pex.config.Config
-type The type of the values in the mapping. This must be
Config
or a subclass.- defaultoptional
Unknown.
- default
itemtype
-dtype, optional Default value of this field.
- optional
bool
, optional If
True
, this configurationField
is optional. Default isTrue
.- 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
- Raises:
- ValueError
Raised if the inputs are invalid:
keytype
oritemtype
arguments are not supported types (members ofConfigDictField.supportedTypes
.dictCheck
oritemCheck
is not a callable function.
See also
Notes
You can use
ConfigDictField
to create name-to-config mappings. One use case is for configuring mappings for dataset types in a Butler. In this case, the dataset type names are arbitrary and user-selected while the mapping configurations are known and fixed.Attributes Summary
Supported data types for field values (
set
of 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 'float'>, <class 'complex'>, <class 'bool'>, <class 'int'>, <class 'str'>}¶
Supported data types for field values (
set
of 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.
- 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:
- instance
lsst.pex.config.Config
The config instance that contains this field.
- instance
Notes
This method is invoked by the
lsst.pex.config.Config
object that contains this field and should not be called directly.Renaming is only relevant for
Field
instances that hold subconfigs.Field
s that hold subconfigs should rename each subconfig with the full field name as generated bylsst.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
Config
object 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:
- instance
lsst.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 theConfigField.dictCheck
user callback functon.
Individual item checks by the
ConfigField.itemCheck
user callback function are done immediately when the value is set on a key. Those checks are not repeated by this method.