lsst.pex.config g22560d942e+527d4d9832
|
Public Member Functions | |
__init__ (self, doc, typemap, default=None, optional=False, multi=False, deprecated=None) | |
__class_getitem__ (cls, tuple[type,...]|type|ForwardRef params) | |
ConfigChoiceField | __get__ (self, None instance, Any owner=None, Any at=None, str label="default") |
ConfigInstanceDict | __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, ConfigInstanceDict|None value, Any at=None, str label="assignment") |
rename (self, instance) | |
validate (self, instance) | |
toDict (self, instance) | |
freeze (self, instance) | |
save (self, outfile, instance) | |
__deepcopy__ (self, memo) | |
![]() | |
__class_getitem__ (cls, tuple[type,...]|type|ForwardRef params) | |
__init__ (self, doc, dtype=None, default=None, check=None, optional=False, deprecated=None) | |
rename (self, instance) | |
validate (self, instance) | |
freeze (self, instance) | |
save (self, outfile, instance) | |
toDict (self, instance) | |
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") | |
![]() | |
__init__ (self, config, field) | |
types (self) | |
__contains__ (self, k) | |
__len__ (self) | |
__iter__ (self) | |
__getitem__ (self, k, at=None, label="default") | |
__setitem__ (self, k, value, at=None, label="assignment") | |
__setattr__ (self, attr, value, at=None, label="assignment") | |
freeze (self) | |
__reduce__ (self) | |
![]() | |
__iter__ (self) | |
keys (self) | |
values (self) | |
items (self) | |
__contains__ (self, name) | |
__new__ (cls, *args, **kw) | |
__reduce__ (self) | |
setDefaults (self) | |
update (self, **kw) | |
load (self, filename, root="config") | |
loadFromStream (self, stream, root="config", filename=None, extraLocals=None) | |
loadFromString (self, code, root="config", filename=None, extraLocals=None) | |
save (self, filename, root="config") | |
saveToString (self, skipImports=False) | |
saveToStream (self, outfile, root="config", skipImports=False) | |
freeze (self) | |
toDict (self) | |
names (self) | |
validate (self) | |
formatHistory (self, name, **kwargs) | |
__setattr__ (self, attr, value, at=None, label="assignment") | |
__delattr__ (self, attr, at=None, label="deletion") | |
__eq__ (self, other) | |
__ne__ (self, other) | |
__str__ (self) | |
__repr__ (self) | |
compare (self, other, shortcut=True, rtol=1e-8, atol=1e-8, output=None) | |
__init_subclass__ (cls, **kwargs) | |
__init__ (cls, name, bases, dict_) | |
__setattr__ (cls, name, value) | |
Public Attributes | |
typemap | |
multi | |
name | |
![]() | |
dtype | |
doc | |
deprecated | |
default | |
check | |
optional | |
source | |
name | |
![]() | |
types | |
Static Public Attributes | |
instanceDictClass = ConfigInstanceDict | |
![]() | |
str | name |
dict | supportedTypes = {str, bool, float, int, complex} |
Protected Member Functions | |
_getOrMake (self, instance, label="default") | |
_collectImports (self, instance, imports) | |
_compare (self, instance1, instance2, shortcut, rtol, atol, output) | |
![]() | |
_setup (self, doc, dtype, default, check, optional, source, deprecated) | |
_validateValue (self, value) | |
_collectImports (self, instance, imports) | |
_compare (self, instance1, instance2, shortcut, rtol, atol, output) | |
![]() | |
_setSelection (self, value, at=None, label="assignment") | |
_getNames (self) | |
_setNames (self, value) | |
_delNames (self) | |
_getName (self) | |
_setName (self, value) | |
_delName (self) | |
_getActive (self) | |
_rename (self, fullname) | |
![]() | |
_save (self, outfile) | |
_collectImports (self) | |
_rename (self, name) | |
_fromPython (cls, config_py) | |
Additional Inherited Members | |
![]() | |
Mapping[str, Any] | _parseTypingArgs (tuple[type,...]|tuple[str,...] params, Mapping[str, Any] kwds) |
![]() | |
_dict | |
_selection | |
_config | |
_field | |
_history | |
_typemap | |
![]() | |
_imports | |
_frozen | |
_name | |
![]() | |
_fields | |
_source | |
![]() | |
dict | _storage [str, Any] |
dict | _fields [str, Field] |
dict | _history [str, list[Any]] |
set | _imports [Any] |
![]() | |
names = property(_getNames, _setNames, _delNames) | |
name = property(_getName, _setName, _delName) | |
active = property(_getActive) | |
![]() | |
history = property(lambda x: x._history) | |
A configuration field (`~lsst.pex.config.Field` subclass) that allows a user to choose from a set of `~lsst.pex.config.Config` types. Parameters ---------- doc : `str` Documentation string for the field. typemap : `dict`-like A mapping between keys and `~lsst.pex.config.Config`-types as values. See *Examples* for details. default : `str`, optional The default configuration name. optional : `bool`, optional When `False`, `lsst.pex.config.Config.validate` will fail if the field's value is `None`. multi : `bool`, optional If `True`, the field allows multiple selections. In this case, set the selections by assigning a sequence to the ``names`` attribute of the field. If `False`, the field allows only a single selection. In this case, set the active config by assigning the config's key from the ``typemap`` to the field's ``name`` attribute (see *Examples*). 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. See Also -------- ChoiceField ConfigDictField ConfigField ConfigurableField DictField Field ListField RangeField RegistryField Notes ----- ``ConfigChoiceField`` instances can allow either single selections or multiple selections, depending on the ``multi`` parameter. For single-selection fields, set the selection with the ``name`` attribute. For multi-selection fields, set the selection though the ``names`` attribute. This field is validated only against the active selection. If the ``active`` attribute is `None` and the field is not optional, validation will fail. When saving a configuration with a ``ConfigChoiceField``, the entire set is saved, as well as the active selection. Examples -------- While the ``typemap`` is shared by all instances of the field, each instance of the field has its own instance of a particular sub-config type. For example, ``AaaConfig`` is a config object >>> from lsst.pex.config import Config, ConfigChoiceField, Field >>> class AaaConfig(Config): ... somefield = Field("doc", int) ... The ``MyConfig`` config has a ``ConfigChoiceField`` field called ``choice`` that maps the ``AaaConfig`` type to the ``"AAA"`` key: >>> TYPEMAP = {"AAA", AaaConfig} >>> class MyConfig(Config): ... choice = ConfigChoiceField("doc for choice", TYPEMAP) ... Creating an instance of ``MyConfig``: >>> instance = MyConfig() Setting value of the field ``somefield`` on the "AAA" key of the ``choice`` field: >>> instance.choice['AAA'].somefield = 5 **Selecting the active configuration** Make the ``"AAA"`` key the active configuration value for the ``choice`` field: >>> instance.choice = "AAA" Alternatively, the last line can be written: >>> instance.choice.name = "AAA" (If the config instance allows multiple selections, you'd assign a sequence to the ``names`` attribute instead.) ``ConfigChoiceField`` instances also allow multiple values of the same type: >>> TYPEMAP["CCC"] = AaaConfig >>> TYPEMAP["BBB"] = AaaConfig
lsst.pex.config.configChoiceField.ConfigChoiceField.__init__ | ( | self, | |
doc, | |||
typemap, | |||
default = None , |
|||
optional = False , |
|||
multi = False , |
|||
deprecated = None |
|||
) |
Reimplemented from lsst.pex.config.config.Field.
lsst.pex.config.configChoiceField.ConfigChoiceField.__class_getitem__ | ( | cls, | |
tuple[type, ...] | type | ForwardRef | params | ||
) |
Reimplemented from lsst.pex.config.config.Field.
lsst.pex.config.configChoiceField.ConfigChoiceField.__deepcopy__ | ( | self, | |
memo | |||
) |
Customize deep-copying, because we always want a reference to the original typemap. WARNING: this must be overridden by subclasses if they change the constructor signature!
Reimplemented in lsst.pex.config.registry.RegistryField.
ConfigInstanceDict lsst.pex.config.configChoiceField.ConfigChoiceField.__get__ | ( | self, | |
Config | instance, | ||
Any | owner = None , |
||
Any | at = None , |
||
str | label = "default" |
||
) |
Reimplemented from lsst.pex.config.config.Field.
lsst.pex.config.configChoiceField.ConfigChoiceField.__get__ | ( | self, | |
instance, | |||
owner = None , |
|||
at = None , |
|||
label = "default" |
|||
) |
Reimplemented from lsst.pex.config.config.Field.
ConfigChoiceField lsst.pex.config.configChoiceField.ConfigChoiceField.__get__ | ( | self, | |
None | instance, | ||
Any | owner = None , |
||
Any | at = None , |
||
str | label = "default" |
||
) |
Reimplemented from lsst.pex.config.config.Field.
None lsst.pex.config.configChoiceField.ConfigChoiceField.__set__ | ( | self, | |
Config | instance, | ||
ConfigInstanceDict | None | value, | ||
Any | at = None , |
||
str | label = "assignment" |
||
) |
Set an attribute on the config instance. Parameters ---------- instance : `lsst.pex.config.Config` The config instance that contains this field. value : obj Value to set on this field. at : `list` of `lsst.pex.config.callStack.StackFrame` The call stack (created by `lsst.pex.config.callStack.getCallStack`). label : `str`, optional Event label for the history. Notes ----- This method is invoked by the owning `lsst.pex.config.Config` object and should not be called directly. Derived `~lsst.pex.config.Field` classes may need to override the behavior. When overriding ``__set__``, `~lsst.pex.config.Field` authors should follow the following rules: - Do not allow modification of frozen configs. - Validate the new value **before** modifying the field. Except if the new value is `None`. `None` is special and no attempt should be made to validate it until `lsst.pex.config.Config.validate` is called. - Do not modify the `~lsst.pex.config.Config` instance to contain invalid values. - If the field is modified, update the history of the `lsst.pex.config.field.Field` to reflect the changes. In order to decrease the need to implement this method in derived `~lsst.pex.config.Field` types, value validation is performed in the `lsst.pex.config.Field._validateValue`. If only the validation step differs in the derived `~lsst.pex.config.Field`, it is simpler to implement `lsst.pex.config.Field._validateValue` than to reimplement ``__set__``. More complicated behavior, however, may require reimplementation.
Reimplemented from lsst.pex.config.config.Field.
|
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.ConfigChoiceField.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 : 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 ----- Only the selected configurations are compared, as the parameters of any others do not matter. Floating point comparisons are performed by `numpy.allclose`.
Reimplemented from lsst.pex.config.config.Field.
lsst.pex.config.configChoiceField.ConfigChoiceField.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.configChoiceField.ConfigChoiceField.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.configChoiceField.ConfigChoiceField.save | ( | self, | |
outfile, | |||
instance | |||
) |
Save this field to a file (for internal use only). Parameters ---------- outfile : file-like object A writeable field 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.configChoiceField.ConfigChoiceField.toDict | ( | self, | |
instance | |||
) |
Convert the field value so that it can be set as the value of an item in a `dict` (for internal use only). Parameters ---------- instance : `~lsst.pex.config.Config` The `~lsst.pex.config.Config` that contains this field. Returns ------- value : object The field's value. See *Notes*. Notes ----- This method invoked by the owning `~lsst.pex.config.Config` object and should not be called directly. Simple values are passed through. Complex data structures must be manipulated. For example, a `~lsst.pex.config.Field` holding a subconfig should, instead of the subconfig object, return a `dict` where the keys are the field names in the subconfig, and the values are the field values in the subconfig.
Reimplemented from lsst.pex.config.config.Field.
lsst.pex.config.configChoiceField.ConfigChoiceField.validate | ( | self, | |
instance | |||
) |
Validate the field (for internal use only). Parameters ---------- instance : `lsst.pex.config.Config` The config instance that contains this field. Raises ------ lsst.pex.config.FieldValidationError Raised if verification fails. Notes ----- This method provides basic validation: - Ensures that the value is not `None` if the field is not optional. - Ensures type correctness. - Ensures that the user-provided ``check`` function is valid. Most `~lsst.pex.config.Field` subclasses should call `lsst.pex.config.Field.validate` if they re-implement `~lsst.pex.config.Field.validate`.
Reimplemented from lsst.pex.config.config.Field.