Public Member Functions | |
| __init__ (self, doc, keytype, itemtype, default=None, optional=False, dictCheck=None, keyCheck=None, itemCheck=None, deprecated=None) | |
| rename (self, instance) | |
| validate (self, instance) | |
| toDict (self, instance) | |
| save (self, outfile, instance) | |
| freeze (self, instance) | |
Public Member Functions inherited from lsst.pex.config.dictField.DictField | |
| __init__ (self, doc, keytype=None, itemtype=None, default=None, optional=False, dictCheck=None, keyCheck=None, itemCheck=None, deprecated=None) | |
| None | __set__ (self, Config instance, Mapping[KeyTypeVar, ItemTypeVar]|None value, Any at=None, str label="assignment") |
Public Member Functions inherited from lsst.pex.config.config.Field | |
| __class_getitem__ (cls, tuple[type,...]|type|ForwardRef params) | |
| __init__ (self, doc, dtype=None, default=None, check=None, optional=False, deprecated=None) | |
| Field[FieldTypeVar] | __get__ (self, None instance, Any owner=None, Any at=None, str label="default") |
| FieldTypeVar | __get__ (self, Config instance, Any owner=None, Any at=None, str label="default") |
| __get__ (self, instance, owner=None, at=None, label="default") | |
| None | __set__ (self, Config instance, FieldTypeVar|None value, Any at=None, str label="assignment") |
| __delete__ (self, instance, at=None, label="deletion") | |
Public Member Functions inherited from lsst.pex.config.dictField.Dict | |
| __init__ (self, Config config, DictField field, Mapping[KeyTypeVar, ItemTypeVar] value, *, list[StackFrame]|None at, str label, bool setHistory=True) | |
| ItemTypeVar | __getitem__ (self, KeyTypeVar k) |
| int | __len__ (self) |
| Iterator[KeyTypeVar] | __iter__ (self) |
| bool | __contains__ (self, Any k) |
| None | __setitem__ (self, KeyTypeVar k, ItemTypeVar x, Any at=None, str label="setitem", bool setHistory=True) |
| None | __delitem__ (self, KeyTypeVar k, Any at=None, str label="delitem", bool setHistory=True) |
| __repr__ (self) | |
| __str__ (self) | |
| __setattr__ (self, attr, value, at=None, label="assignment") | |
| __reduce__ (self) | |
Protected Member Functions | |
| _collectImports (self, instance, imports) | |
| _compare (self, instance1, instance2, shortcut, rtol, atol, output) | |
Protected Member Functions inherited from lsst.pex.config.dictField.DictField | |
| Dict[KeyTypeVar, ItemTypeVar]|None | _copy_storage (self, Config old, Config new) |
Protected Member Functions inherited from lsst.pex.config.config.Field | |
| _setup (self, doc, dtype, default, check, optional, source, deprecated) | |
| _validateValue (self, value) | |
Protected Member Functions inherited from lsst.pex.config.dictField.Dict | |
| Config | _config (self) |
| Dict | _copy (self, Config config) |
Additional Inherited Members | |
Public Attributes inherited from lsst.pex.config.dictField.DictField | |
| keytype = keytype | |
| itemtype = itemtype | |
| dictCheck = dictCheck | |
| keyCheck = keyCheck | |
| itemCheck = itemCheck | |
Public Attributes inherited from lsst.pex.config.config.Field | |
| dtype = dtype | |
| doc = doc | |
| deprecated = deprecated | |
| default = default | |
| check = check | |
| optional = optional | |
| source = source | |
Static Public Attributes inherited from lsst.pex.config.dictField.DictField | |
| type | DictClass = Dict |
Static Public Attributes inherited from lsst.pex.config.config.Field | |
| dict | supportedTypes = {str, bool, float, int, complex} |
Static Protected Member Functions inherited from lsst.pex.config.dictField.DictField | |
| Mapping[str, Any] | _parseTypingArgs (tuple[type,...]|tuple[str,...] params, Mapping[str, Any] kwds) |
Protected Attributes inherited from lsst.pex.config.dictField.Dict | |
| _field = field | |
| _config_ = weakref.ref(config) | |
| dict | _dict = {} |
| Config | _history = self._config._history.setdefault(self._field.name, []) |
| _config | |
Properties inherited from lsst.pex.config.dictField.Dict | |
| history = property(lambda x: x._history) | |
A configuration field (`~lsst.pex.config.Field` subclass) that is a
mapping of keys to `~lsst.pex.config.Config` instances.
``ConfigDictField`` behaves like `DictField` except that the
``itemtype`` must be a `~lsst.pex.config.Config` 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
`~lsst.pex.config.Config` or a subclass.
default : `typing.Any`, optional
Unknown.
default : ``itemtype``-dtype, optional
Default value of this field.
optional : `bool`, optional
If `True`, this configuration `~lsst.pex.config.Field` is *optional*.
Default is `True`.
dictCheck : `~collections.abc.Callable` or `None`, optional
Callable to check a dict.
keyCheck : `~collections.abc.Callable` or `None`, optional
Callable to check a key.
itemCheck : `~collections.abc.Callable` or `None`, optional
Callable to check an item.
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`` or ``itemtype`` arguments are not supported types
(members of `Field.supportedTypes`.
- ``dictCheck``, ``keyCheck`` or ``itemCheck`` 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.
|
protected |
Call the _collectImports method on all config
objects the field may own, and union them with the supplied imports
set.
Parameters
----------
instance : instance or subclass of `lsst.pex.config.Config`
A config object that has this field defined on it
imports : `set`
Set of python modules that need imported after persistence
Reimplemented from lsst.pex.config.config.Field.
|
protected |
Compare two fields for equality.
Used by `lsst.pex.ConfigDictField.compare`.
Parameters
----------
instance1 : `lsst.pex.config.Config`
Left-hand side config instance to compare.
instance2 : `lsst.pex.config.Config`
Right-hand side config instance to compare.
shortcut : `bool`
If `True`, this function returns as soon as an inequality if found.
rtol : `float`
Relative tolerance for floating point comparisons.
atol : `float`
Absolute tolerance for floating point comparisons.
output : `collections.abc.Callable`
A callable that takes a string, used (possibly repeatedly) to
report inequalities.
Returns
-------
isEqual : bool
`True` if the fields are equal, `False` otherwise.
Notes
-----
Floating point comparisons are performed by `numpy.allclose`.
Reimplemented from lsst.pex.config.dictField.DictField.
| lsst.pex.config.configDictField.ConfigDictField.freeze | ( | self, | |
| 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.**
Reimplemented from lsst.pex.config.config.Field.
| lsst.pex.config.configDictField.ConfigDictField.rename | ( | self, | |
| instance ) |
Rename the field in a `~lsst.pex.config.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 `~lsst.pex.config.Field` instances that
hold subconfigs. `~lsst.pex.config.Field`\s that hold subconfigs should
rename each subconfig with the full field name as generated by
`lsst.pex.config.config._joinNamePath`.
Reimplemented from lsst.pex.config.config.Field.
| lsst.pex.config.configDictField.ConfigDictField.save | ( | self, | |
| outfile, | |||
| instance ) |
Save this field to a file (for internal use only).
Parameters
----------
outfile : `typing.IO`
A writeable file handle.
instance : `~lsst.pex.config.Config`
The `~lsst.pex.config.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.
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.
Reimplemented from lsst.pex.config.config.Field.
| lsst.pex.config.configDictField.ConfigDictField.toDict | ( | self, | |
| 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 : `dict` or `None`
If this field has a value of `None`, then this method returns
`None`. Otherwise, this method returns the field's value as a
regular Python `dict`.
Reimplemented from lsst.pex.config.dictField.DictField.
| lsst.pex.config.configDictField.ConfigDictField.validate | ( | self, | |
| instance ) |
Validate the field.
Parameters
----------
instance : `lsst.pex.config.Config`
The config instance that contains this field.
Raises
------
lsst.pex.config.FieldValidationError
Raised if validation fails for this field.
Notes
-----
Individual key checks (``keyCheck``) are applied when each key is added
and are not re-checked by this method.
Reimplemented from lsst.pex.config.dictField.DictField.