LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
|
Public Member Functions | |
validateTarget (self, target, ConfigClass) | |
__init__ (self, doc, target, ConfigClass=None, default=None, check=None, deprecated=None) | |
ConfigurableField | __get__ (self, None instance, Any owner=None, Any at=None, str label="default") |
ConfigurableInstance[FieldTypeVar] | __get__ (self, Config instance, Any owner=None, Any at=None, str label="default") |
__get__ (self, instance, owner=None, at=None, label="default") | |
__set__ (self, instance, value, at=None, label="assignment") | |
rename (self, instance) | |
save (self, outfile, instance) | |
freeze (self, instance) | |
toDict (self, instance) | |
validate (self, instance) | |
__deepcopy__ (self, memo) | |
Public Attributes | |
target | |
ConfigClass | |
name | |
Protected Member Functions | |
_collectImports (self, instance, imports) | |
_compare (self, instance1, instance2, shortcut, rtol, atol, output) | |
Static Protected Member Functions | |
Mapping[str, Any] | _parseTypingArgs (tuple[type,...]|tuple[str,...] params, Mapping[str, Any] kwds) |
A configuration field (`~lsst.pex.config.Field` subclass) that can be can be retargeted towards a different configurable (often a `lsst.pipe.base.Task` subclass). The ``ConfigurableField`` is often used to configure subtasks, which are tasks (`~lsst.pipe.base.Task`) called by a parent task. Parameters ---------- doc : `str` A description of the configuration field. target : configurable class The configurable target. Configurables have a ``ConfigClass`` attribute. Within the task framework, configurables are `lsst.pipe.base.Task` subclasses). ConfigClass : `lsst.pex.config.Config`-type, optional The subclass of `lsst.pex.config.Config` expected as the configuration class of the ``target``. If ``ConfigClass`` is unset then ``target.ConfigClass`` is used. default : ``ConfigClass``-type, optional The default configuration class. Normally this parameter is not set, and defaults to ``ConfigClass`` (or ``target.ConfigClass``). check : callable, optional Callable that takes the field's value (the ``target``) as its only positional argument, and returns `True` if the ``target`` is valid (and `False` otherwise). 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 ConfigChoiceField ConfigDictField ConfigField DictField Field ListField RangeField RegistryField Notes ----- You can use the `ConfigurableInstance.apply` method to construct a fully-configured configurable.
Definition at line 228 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.__init__ | ( | self, | |
doc, | |||
target, | |||
ConfigClass = None, | |||
default = None, | |||
check = None, | |||
deprecated = None ) |
Reimplemented from lsst.pex.config.config.Field.
Definition at line 322 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.__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!
Definition at line 444 of file configurableField.py.
ConfigurableInstance[FieldTypeVar] lsst.pex.config.configurableField.ConfigurableField.__get__ | ( | self, | |
Config | instance, | ||
Any | owner = None, | ||
Any | at = None, | ||
str | label = "default" ) |
Reimplemented from lsst.pex.config.config.Field.
Definition at line 366 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.__get__ | ( | self, | |
instance, | |||
owner = None, | |||
at = None, | |||
label = "default" ) |
Reimplemented from lsst.pex.config.config.Field.
Definition at line 370 of file configurableField.py.
ConfigurableField lsst.pex.config.configurableField.ConfigurableField.__get__ | ( | self, | |
None | instance, | ||
Any | owner = None, | ||
Any | at = None, | ||
str | label = "default" ) |
Reimplemented from lsst.pex.config.config.Field.
Definition at line 361 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.__set__ | ( | self, | |
instance, | |||
value, | |||
at = None, | |||
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` or `None`,\ optional 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.
Definition at line 376 of file configurableField.py.
|
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.
Definition at line 404 of file configurableField.py.
|
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 : callable A callable that takes a string, used (possibly repeatedly) to report inequalities. For example: `print`. 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.config.Field.
Definition at line 458 of file configurableField.py.
|
staticprotected |
Parse type annotations into keyword constructor arguments. This is a special private method that interprets type arguments (i.e. Field[str]) into keyword arguments to be passed on to the constructor. Subclasses of Field can implement this method to customize how they handle turning type parameters into keyword arguments (see DictField for an example) Parameters ---------- params : `tuple` of `type` or `tuple` of str Parameters passed to the type annotation. These will either be types or strings. Strings are to interpreted as forward references and will be treated as such. kwds : `MutableMapping` with keys of `str` and values of `Any` These are the user supplied keywords that are to be passed to the Field constructor. Returns ------- kwds : `MutableMapping` with keys of `str` and values of `Any` The mapping of keywords that will be passed onto the constructor of the Field. Should be filled in with any information gleaned from the input parameters. Raises ------ ValueError Raised if params is of incorrect length. Raised if a forward reference could not be resolved Raised if there is a conflict between params and values in kwds
Reimplemented from lsst.pex.config.config.Field.
Definition at line 346 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.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.
Definition at line 428 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.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.
Definition at line 399 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.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.
Definition at line 411 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.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.
Definition at line 432 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.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.
Definition at line 436 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.validateTarget | ( | self, | |
target, | |||
ConfigClass ) |
Validate the target and configuration class. Parameters ---------- target : configurable class The configurable being verified. ConfigClass : `lsst.pex.config.Config`-type or `None` The configuration class associated with the ``target``. This can be `None` if ``target`` has a ``ConfigClass`` attribute. Raises ------ AttributeError Raised if ``ConfigClass`` is `None` and ``target`` does not have a ``ConfigClass`` attribute. TypeError Raised if ``ConfigClass`` is not a `~lsst.pex.config.Config` subclass. ValueError Raised if: - ``target`` is not callable (callables have a ``__call__`` method). - ``target`` is not startically defined (does not have ``__module__`` or ``__name__`` attributes).
Definition at line 277 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.ConfigClass |
Definition at line 343 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.name |
Definition at line 491 of file configurableField.py.
lsst.pex.config.configurableField.ConfigurableField.target |
Definition at line 342 of file configurableField.py.