LSST Applications
21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
|
Public Member Functions | |
def | __init__ (self, doc, dtype, default=None, check=None, optional=False, deprecated=None) |
def | rename (self, instance) |
def | validate (self, instance) |
def | freeze (self, instance) |
def | save (self, outfile, instance) |
def | toDict (self, instance) |
def | __get__ (self, instance, owner=None, at=None, label="default") |
def | __set__ (self, instance, value, at=None, label='assignment') |
def | __delete__ (self, instance, at=None, label='deletion') |
Public Attributes | |
dtype | |
doc | |
deprecated | |
default | |
check | |
optional | |
source | |
Static Public Attributes | |
supportedTypes = set((str, bool, float, int, complex)) | |
A field in a `~lsst.pex.config.Config` that supports `int`, `float`, `complex`, `bool`, and `str` data types. Parameters ---------- doc : `str` A description of the field for users. dtype : type The field's data type. ``Field`` only supports basic data types: `int`, `float`, `complex`, `bool`, and `str`. See `Field.supportedTypes`. default : object, optional The field's default value. check : callable, optional A callable that is called with the field's value. This callable should return `False` if the value is invalid. More complex inter-field validation can be written as part of the `lsst.pex.config.Config.validate` method. optional : `bool`, optional This sets whether the field is considered optional, and therefore doesn't need to be set by the user. When `False`, `lsst.pex.config.Config.validate` fails if the field's value is `None`. 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 when the ``dtype`` parameter is not one of the supported types (see `Field.supportedTypes`). See also -------- ChoiceField ConfigChoiceField ConfigDictField ConfigField ConfigurableField DictField ListField RangeField RegistryField Notes ----- ``Field`` instances (including those of any subclass of ``Field``) are used as class attributes of `~lsst.pex.config.Config` subclasses (see the example, below). ``Field`` attributes work like the `property` attributes of classes that implement custom setters and getters. `Field` attributes belong to the class, but operate on the instance. Formally speaking, `Field` attributes are `descriptors <https://docs.python.org/3/howto/descriptor.html>`_. When you access a `Field` attribute on a `Config` instance, you don't get the `Field` instance itself. Instead, you get the value of that field, which might be a simple type (`int`, `float`, `str`, `bool`) or a custom container type (like a `lsst.pex.config.List`) depending on the field's type. See the example, below. Examples -------- Instances of ``Field`` should be used as class attributes of `lsst.pex.config.Config` subclasses: >>> from lsst.pex.config import Config, Field >>> class Example(Config): ... myInt = Field("An integer field.", int, default=0) ... >>> print(config.myInt) 0 >>> config.myInt = 5 >>> print(config.myInt) 5
def lsst.pex.config.config.Field.__init__ | ( | self, | |
doc, | |||
dtype, | |||
default = None , |
|||
check = None , |
|||
optional = False , |
|||
deprecated = None |
|||
) |
Reimplemented in lsst.pex.config.configChoiceField.ConfigChoiceField, lsst.pex.config.configurableField.ConfigurableField, and lsst.pex.config.choiceField.ChoiceField.
def lsst.pex.config.config.Field.__delete__ | ( | self, | |
instance, | |||
at = None , |
|||
label = 'deletion' |
|||
) |
Delete an attribute from a `lsst.pex.config.Config` instance. Parameters ---------- instance : `lsst.pex.config.Config` The config instance that contains 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 is invoked by the owning `~lsst.pex.config.Config` object and should not be called directly.
Definition at line 634 of file config.py.
def lsst.pex.config.config.Field.__get__ | ( | self, | |
instance, | |||
owner = None , |
|||
at = None , |
|||
label = "default" |
|||
) |
Define how attribute access should occur on the Config instance This is invoked by the owning config object and should not be called directly When the field attribute is accessed on a Config class object, it returns the field object itself in order to allow inspection of Config classes. When the field attribute is access on a config instance, the actual value described by the field (and held by the Config instance) is returned.
Reimplemented in lsst.pex.config.configurableField.ConfigurableField.
Definition at line 550 of file config.py.
def lsst.pex.config.config.Field.__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` 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 in lsst.pipe.tasks.configurableActions._configurableActionField.ConfigurableActionField, lsst.pex.config.listField.ListField, lsst.pex.config.dictField.DictField, lsst.pex.config.configurableField.ConfigurableField, lsst.pex.config.configField.ConfigField, and lsst.pex.config.configChoiceField.ConfigChoiceField.
Definition at line 577 of file config.py.
def lsst.pex.config.config.Field.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 in lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStructField, lsst.pex.config.configurableField.ConfigurableField, lsst.pex.config.configField.ConfigField, lsst.pex.config.configDictField.ConfigDictField, and lsst.pex.config.configChoiceField.ConfigChoiceField.
Definition at line 429 of file config.py.
def lsst.pex.config.config.Field.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.Fields` that hold subconfigs should rename each subconfig with the full field name as generated by `lsst.pex.config.config._joinNamePath`.
Reimplemented in lsst.pex.config.configurableField.ConfigurableField, lsst.pex.config.configField.ConfigField, lsst.pex.config.configDictField.ConfigDictField, and lsst.pex.config.configChoiceField.ConfigChoiceField.
Definition at line 379 of file config.py.
def lsst.pex.config.config.Field.save | ( | self, | |
outfile, | |||
instance | |||
) |
Save this field to a file (for internal use only). Parameters ---------- outfile : file-like object A writeable field handle. instance : `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. 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 in lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStructField, lsst.pex.config.configurableField.ConfigurableField, lsst.pex.config.configField.ConfigField, lsst.pex.config.configDictField.ConfigDictField, and lsst.pex.config.configChoiceField.ConfigChoiceField.
Definition at line 487 of file config.py.
def lsst.pex.config.config.Field.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 : `Config` The `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 in lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStructField, lsst.pex.config.listField.ListField, lsst.pex.config.dictField.DictField, lsst.pex.config.configurableField.ConfigurableField, lsst.pex.config.configField.ConfigField, lsst.pex.config.configDictField.ConfigDictField, and lsst.pex.config.configChoiceField.ConfigChoiceField.
Definition at line 523 of file config.py.
def lsst.pex.config.config.Field.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.Field.validate` if they re-implement `~lsst.pex.config.field.Field.validate`.
Reimplemented in lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStructField, lsst.pex.config.listField.ListField, lsst.pex.config.dictField.DictField, lsst.pex.config.configurableField.ConfigurableField, lsst.pex.config.configField.ConfigField, lsst.pex.config.configDictField.ConfigDictField, and lsst.pex.config.configChoiceField.ConfigChoiceField.
Definition at line 400 of file config.py.
|
static |