LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
lsst.pex.config.choiceField.ChoiceField Class Reference
Inheritance diagram for lsst.pex.config.choiceField.ChoiceField:
lsst.pex.config.config.Field

Public Member Functions

 __init__ (self, doc, dtype=None, allowed=None, default=None, optional=True, deprecated=None)
 

Public Attributes

 allowed
 
 source
 

Protected Member Functions

 _validateValue (self, value)
 

Detailed Description

A configuration field (`~lsst.pex.config.Field` subclass) that allows a
user to select from a predefined set of values.

Use ``ChoiceField`` when a configuration can only take one of a predefined
set of values. Each choice must be of the same type.

Parameters
----------
doc : `str`
    Documentation string that describes the configuration field.
dtype : class
    The type of the field's choices. For example, `str` or `int`.
allowed : `dict`
    The allowed values. Keys are the allowed choices (of ``dtype``-type).
    Values are descriptions (`str`-type) of each choice.
default : ``dtype``-type, optional
    The default value, which is of type ``dtype`` and one of the allowed
    choices.
optional : `bool`, optional
    If `True`, this configuration 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.

See Also
--------
ConfigChoiceField
ConfigDictField
ConfigField
ConfigurableField
DictField
Field
ListField
RangeField
RegistryField

Definition at line 34 of file choiceField.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.pex.config.choiceField.ChoiceField.__init__ ( self,
doc,
dtype = None,
allowed = None,
default = None,
optional = True,
deprecated = None )

Reimplemented from lsst.pex.config.config.Field.

Definition at line 72 of file choiceField.py.

72 def __init__(self, doc, dtype=None, allowed=None, default=None, optional=True, deprecated=None):
73 if dtype is None:
74 raise ValueError("supplied dtype must not be None")
75 if allowed is None:
76 raise ValueError("supplied allowed mapping must not be None")
77 self.allowed = dict(allowed)
78 if optional and None not in self.allowed:
79 self.allowed[None] = "Field is optional"
80
81 if len(self.allowed) == 0:
82 raise ValueError("ChoiceFields must allow at least one choice")
83
84 Field.__init__(
85 self, doc=doc, dtype=dtype, default=default, check=None, optional=optional, deprecated=deprecated
86 )
87
88 self.__doc__ += "\n\nAllowed values:\n\n"
89 for choice, choiceDoc in self.allowed.items():
90 if choice is not None and not isinstance(choice, dtype):
91 raise ValueError(
92 "ChoiceField's allowed choice %s is of incorrect type %s. Expected %s"
93 % (choice, _typeStr(choice), _typeStr(dtype))
94 )
95 self.__doc__ += "{}\n {}\n".format(f"``{str(choice)!r}``", choiceDoc)
96
97 self.source = getStackFrame()
98
std::vector< SchemaItem< Flag > > * items

Member Function Documentation

◆ _validateValue()

lsst.pex.config.choiceField.ChoiceField._validateValue ( self,
value )
protected
Validate a value.

Parameters
----------
value : object
    The value being validated.

Raises
------
TypeError
    Raised if the value's type is incompatible with the field's
    ``dtype``.
ValueError
    Raised if the value is rejected by the ``check`` method.

Reimplemented from lsst.pex.config.config.Field.

Definition at line 99 of file choiceField.py.

99 def _validateValue(self, value):
100 Field._validateValue(self, value)
101 if value not in self.allowed:
102 msg = "Value {} is not allowed.\n\tAllowed values: [{}]".format(
103 value, ", ".join(str(key) for key in self.allowed)
104 )
105 raise ValueError(msg)

Member Data Documentation

◆ allowed

lsst.pex.config.choiceField.ChoiceField.allowed

Definition at line 77 of file choiceField.py.

◆ source

lsst.pex.config.choiceField.ChoiceField.source

Definition at line 97 of file choiceField.py.


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