lsst.pex.config
17.0.1-2-g54f2ebc+7
|
Public Member Functions | |
def | __init__ (self, doc, keytype, itemtype, default=None, optional=False, dictCheck=None, itemCheck=None) |
def | validate (self, instance) |
def | __set__ (self, instance, value, at=None, label="assignment") |
def | toDict (self, instance) |
def | rename (self, instance) |
def | freeze (self, instance) |
def | save (self, outfile, instance) |
def | __get__ (self, instance, owner=None, at=None, label="default") |
def | __delete__ (self, instance, at=None, label='deletion') |
Public Attributes | |
keytype | |
itemtype | |
dictCheck | |
itemCheck | |
dtype | |
doc | |
default | |
check | |
optional | |
source | |
Static Public Attributes | |
DictClass = Dict | |
supportedTypes = set((str, bool, float, int, complex)) | |
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`} The type of the mapping keys. All keys must have this type. itemtype : {`int`, `float`, `complex`, `bool`, `str`} Type of the mapping values. 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. 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 139 of file dictField.py.
def lsst.pex.config.dictField.DictField.__init__ | ( | self, | |
doc, | |||
keytype, | |||
itemtype, | |||
default = None , |
|||
optional = False , |
|||
dictCheck = None , |
|||
itemCheck = None |
|||
) |
Definition at line 196 of file dictField.py.
|
inherited |
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.
|
inherited |
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.
def lsst.pex.config.dictField.DictField.__set__ | ( | self, | |
instance, | |||
value, | |||
at = None , |
|||
label = "assignment" |
|||
) |
Definition at line 249 of file dictField.py.
|
inherited |
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.**
|
inherited |
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`.
|
inherited |
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.
def 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`.
Definition at line 265 of file dictField.py.
def 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.
Definition at line 216 of file dictField.py.
lsst.pex.config.dictField.DictField.dictCheck |
Definition at line 213 of file dictField.py.
|
static |
Definition at line 194 of file dictField.py.
lsst.pex.config.dictField.DictField.itemCheck |
Definition at line 214 of file dictField.py.
lsst.pex.config.dictField.DictField.itemtype |
Definition at line 212 of file dictField.py.
lsst.pex.config.dictField.DictField.keytype |
Definition at line 211 of file dictField.py.
|
staticinherited |