ConfigDictField¶
-
class
lsst.pex.config.
ConfigDictField
(doc, keytype, itemtype, default=None, optional=False, dictCheck=None, itemCheck=None, deprecated=None)¶ Bases:
lsst.pex.config.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.- default : optional
Unknown.
- default :
itemtype
-dtype, optional Default value of this field.
- optional :
bool
, optional If
True
, this configurationField
is optional. Default isTrue
.- 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 if the inputs are invalid:
keytype
oritemtype
arguments are not supported types (members ofConfigDictField.supportedTypes
.dictCheck
oritemCheck
is not a callable function.
See also
ChoiceField
,ConfigChoiceField
,ConfigField
,ConfigurableField
,DictField
,Field
,ListField
,RangeField
,RegistryField
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
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 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 'complex'>, <class 'int'>, <class 'float'>, <class 'bool'>, <class 'str'>}¶
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.Config
object that contains this field and should not be called directly.Renaming is only relevant for
Field
instances that hold subconfigs.Fields
that hold subconfigs should rename each subconfig with the full field name as generated bylsst.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
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.
-
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: - instance :
-
validate
(instance)¶ Validate the field’s value (for internal use only).
Parameters: - instance :
lsst.pex.config.Config
The configuration that contains this field.
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.- instance :
- doc :