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 | |
__init__ (self, doc, keytype=None, itemtype=None, default=None, optional=False, dictCheck=None, itemCheck=None, deprecated=None) | |
validate (self, instance) | |
None | __set__ (self, Config instance, Mapping[KeyTypeVar, ItemTypeVar]|None value, Any at=None, str label="assignment") |
toDict (self, instance) | |
Public Attributes | |
keytype | |
itemtype | |
dictCheck | |
itemCheck | |
name | |
Static Public Attributes | |
type | DictClass = Dict |
Protected Member Functions | |
_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 maps keys and values. The types of both items and keys are restricted to these builtin types: `int`, `float`, `complex`, `bool`, and `str`). All keys share the same type and all values share the same type. Keys can have a different type from values. Parameters ---------- doc : `str` A documentation string that describes the configuration field. keytype : {`int`, `float`, `complex`, `bool`, `str`}, optional The type of the mapping keys. All keys must have this type. Optional if keytype and itemtype are supplied as typing arguments to the class. itemtype : {`int`, `float`, `complex`, `bool`, `str`}, optional Type of the mapping values. Optional if keytype and itemtype are supplied as typing arguments to the class. default : `dict`, optional The default mapping. optional : `bool`, optional If `True`, the field doesn't need to have a set value. dictCheck : callable A function that validates the dictionary as a whole. itemCheck : callable A function that validates individual mapping values. 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 ConfigurableField Field ListField RangeField RegistryField Examples -------- This field maps has `str` keys and `int` values: >>> from lsst.pex.config import Config, DictField >>> class MyConfig(Config): ... field = DictField( ... doc="Example string-to-int mapping field.", ... keytype=str, itemtype=int, ... default={}) ... >>> config = MyConfig() >>> config.field['myKey'] = 42 >>> print(config.field) {'myKey': 42}
Definition at line 194 of file dictField.py.
lsst.pex.config.dictField.DictField.__init__ | ( | self, | |
doc, | |||
keytype = None, | |||
itemtype = None, | |||
default = None, | |||
optional = False, | |||
dictCheck = None, | |||
itemCheck = None, | |||
deprecated = None ) |
Reimplemented from lsst.pex.config.config.Field.
Reimplemented in lsst.pex.config.configDictField.ConfigDictField.
Definition at line 291 of file dictField.py.
None lsst.pex.config.dictField.DictField.__set__ | ( | self, | |
Config | instance, | ||
Mapping[KeyTypeVar, ItemTypeVar] | 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` 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 362 of file dictField.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. 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.
Reimplemented in lsst.pex.config.configDictField.ConfigDictField.
Definition at line 401 of file dictField.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 257 of file dictField.py.
lsst.pex.config.dictField.DictField.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.config.Field.
Reimplemented in lsst.pex.config.configDictField.ConfigDictField.
Definition at line 383 of file dictField.py.
lsst.pex.config.dictField.DictField.validate | ( | self, | |
instance ) |
Validate the field's value (for internal use only). Parameters ---------- instance : `lsst.pex.config.Config` The configuration that contains this field. Returns ------- isValid : `bool` `True` is returned if the field passes validation criteria (see *Notes*). Otherwise `False`. 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 the `ConfigField.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.
Reimplemented from lsst.pex.config.config.Field.
Reimplemented in lsst.pex.config.configDictField.ConfigDictField.
Definition at line 330 of file dictField.py.
lsst.pex.config.dictField.DictField.dictCheck |
Definition at line 327 of file dictField.py.
Definition at line 254 of file dictField.py.
lsst.pex.config.dictField.DictField.itemCheck |
Definition at line 328 of file dictField.py.
lsst.pex.config.dictField.DictField.itemtype |
Definition at line 326 of file dictField.py.
lsst.pex.config.dictField.DictField.keytype |
Definition at line 325 of file dictField.py.
lsst.pex.config.dictField.DictField.name |
Definition at line 434 of file dictField.py.