lsst.pex.config g3cd1b1f544+a560a896d8
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.pex.config.configDictField.ConfigDictField Class Reference
Inheritance diagram for lsst.pex.config.configDictField.ConfigDictField:
lsst.pex.config.dictField.DictField lsst.pex.config.config.Field lsst.pex.config.dictField.Dict

Public Member Functions

def __init__ (self, doc, keytype, itemtype, default=None, optional=False, dictCheck=None, itemCheck=None, deprecated=None)
 
def rename (self, instance)
 
def validate (self, instance)
 
def toDict (self, instance)
 
def save (self, outfile, instance)
 
def freeze (self, instance)
 
- Public Member Functions inherited from lsst.pex.config.dictField.DictField
def __init__ (self, doc, keytype=None, itemtype=None, default=None, optional=False, dictCheck=None, itemCheck=None, deprecated=None)
 
def validate (self, instance)
 
None __set__ (self, Config instance, Union[Mapping[KeyTypeVar, ItemTypeVar], None] value, Any at=None, str label="assignment")
 
def toDict (self, instance)
 
- Public Member Functions inherited from lsst.pex.config.config.Field
def __class_getitem__ (cls, Union[tuple[type,...], type, ForwardRef] params)
 
def __init__ (self, doc, dtype=None, 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)
 
"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")
 
def __get__ (self, instance, owner=None, at=None, label="default")
 
None __set__ (self, "Config" instance, Optional[FieldTypeVar] value, Any at=None, str label="assignment")
 
def __delete__ (self, instance, at=None, label="deletion")
 
- Public Member Functions inherited from lsst.pex.config.dictField.Dict
def __init__ (self, config, field, value, at, label, setHistory=True)
 
ItemTypeVar __getitem__ (self, KeyTypeVar k)
 
int __len__ (self)
 
Iterator[KeyTypeVar] __iter__ (self)
 
bool __contains__ (self, Any k)
 
None __setitem__ (self, KeyTypeVar k, ItemTypeVar x, Any at=None, str label="setitem", bool setHistory=True)
 
None __delitem__ (self, KeyTypeVar k, Any at=None, str label="delitem", bool setHistory=True)
 
def __repr__ (self)
 
def __str__ (self)
 
def __setattr__ (self, attr, value, at=None, label="assignment")
 
def __reduce__ (self)
 

Public Attributes

 keytype
 
 itemtype
 
 dictCheck
 
 itemCheck
 
- Public Attributes inherited from lsst.pex.config.dictField.DictField
 keytype
 
 itemtype
 
 dictCheck
 
 itemCheck
 
- Public Attributes inherited from lsst.pex.config.config.Field
 dtype
 
 doc
 
 deprecated
 
 default
 
 check
 
 optional
 
 source
 

Static Public Attributes

 DictClass = ConfigDict
 
- Static Public Attributes inherited from lsst.pex.config.config.Field
 supportedTypes = set((str, bool, float, int, complex))
 

Additional Inherited Members

- Properties inherited from lsst.pex.config.dictField.Dict
 history = property(lambda x: x._history)
 

Detailed Description

A configuration field (`~lsst.pex.config.Field` subclass) that is a
mapping of keys to `~lsst.pex.config.Config` instances.

``ConfigDictField`` behaves like `DictField` except that the
``itemtype`` must be a `~lsst.pex.config.Config` subclass.

Parameters
----------
doc : `str`
    A description of the configuration field.
keytype : {`int`, `float`, `complex`, `bool`, `str`}
    The type of the mapping keys. All keys must have this type.
itemtype : `lsst.pex.config.Config`-type
    The type of the values in the mapping. This must be
    `~lsst.pex.config.Config` or a subclass.
default : optional
    Unknown.
default : ``itemtype``-dtype, optional
    Default value of this field.
optional : `bool`, optional
    If `True`, this configuration `~lsst.pex.config.Field` is *optional*.
    Default is `True`.
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 if the inputs are invalid:

    - ``keytype`` or ``itemtype`` arguments are not supported types
      (members of `ConfigDictField.supportedTypes`.
    - ``dictCheck`` or ``itemCheck`` is not a callable function.

See also
--------
ChoiceField
ConfigChoiceField
ConfigField
ConfigurableField
DictField
Field
ListField
RangeField
RegistryField

Notes
-----
You can use ``ConfigDictField`` to create name-to-config mappings. One use
case is for configuring mappings for dataset types in a Butler. In this
case, the dataset type names are arbitrary and user-selected while the
mapping configurations are known and fixed.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pex.config.configDictField.ConfigDictField.__init__ (   self,
  doc,
  keytype,
  itemtype,
  default = None,
  optional = False,
  dictCheck = None,
  itemCheck = None,
  deprecated = None 
)

Member Function Documentation

◆ freeze()

def lsst.pex.config.configDictField.ConfigDictField.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.

◆ rename()

def lsst.pex.config.configDictField.ConfigDictField.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 from lsst.pex.config.config.Field.

◆ save()

def lsst.pex.config.configDictField.ConfigDictField.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 from lsst.pex.config.config.Field.

◆ toDict()

def lsst.pex.config.configDictField.ConfigDictField.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.dictField.DictField.

◆ validate()

def lsst.pex.config.configDictField.ConfigDictField.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.dictField.DictField.


The documentation for this class was generated from the following file: