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
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: