LSST Applications g0d97872fb5+4fd969bb9d,g1653933729+34a971ddd9,g28da252d5a+072f89fe25,g2bbee38e9b+a99b0ab4cd,g2bc492864f+a99b0ab4cd,g2ca4be77d2+c0e3b27cd8,g2cdde0e794+704103fe75,g3156d2b45e+6e87dc994a,g347aa1857d+a99b0ab4cd,g35bb328faa+34a971ddd9,g3a166c0a6a+a99b0ab4cd,g3e281a1b8c+8ec26ec694,g4005a62e65+ba0306790b,g414038480c+9ed5ed841a,g569e0e2b34+cb4faa46ad,g5a97de2502+520531a62c,g717e5f8c0f+29153700a5,g7ede599f99+367733290c,g80478fca09+17051a22cc,g82479be7b0+f2f1ea0a87,g858d7b2824+29153700a5,g8b782ad322+29153700a5,g8cd86fa7b1+05420e7f7d,g9125e01d80+34a971ddd9,ga5288a1d22+e7f674aaf3,gae0086650b+34a971ddd9,gae74b0b5c6+45ef5cdc51,gb58c049af0+ace264a4f2,gc28159a63d+a99b0ab4cd,gcf0d15dbbd+8051a81198,gda6a2b7d83+8051a81198,gdaeeff99f8+7774323b41,gdf4d240d4a+34a971ddd9,ge2409df99d+cb167bac99,ge33fd446bb+29153700a5,ge79ae78c31+a99b0ab4cd,gf0baf85859+890af219f9,gf5289d68f6+9faa5c5784,w.2024.36
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | List of all members
lsst.pex.config.rangeField.RangeField Class Reference
Inheritance diagram for lsst.pex.config.rangeField.RangeField:
lsst.pex.config.config.Field

Public Member Functions

 __init__ (self, doc, dtype, default=None, optional=False, min=None, max=None, inclusiveMin=True, inclusiveMax=False, deprecated=None)
 

Public Attributes

 min
 
 max
 
 maxCheck
 
 minCheck
 
 rangeString
 

Static Public Attributes

dict supportedTypes = {int, float}
 

Protected Member Functions

 _validateValue (self, value)
 

Detailed Description

A configuration field (`lsst.pex.config.Field` subclass) that requires
the value to be in a specific numeric range.

Parameters
----------
doc : `str`
    A description of the field.
dtype : {`int`-type, `float`-type}
    The field's data type: either the `int` or `float` type.
default : `int` or `float`, optional
    Default value for the field.
optional : `bool`, optional
    When `False`, `lsst.pex.config.Config.validate` will fail if the
    field's value is `None`.
min : int, float, or `None`, optional
    Minimum value accepted in the range. If `None`, the range has no
    lower bound (equivalent to negative infinity).
max : `int`, `float`, or None, optional
    Maximum value accepted in the range. If `None`, the range has no
    upper bound (equivalent to positive infinity).
inclusiveMin : `bool`, optional
    If `True`, the ``min`` value is included in the allowed range.
inclusiveMax : `bool`, optional
    If `True`, the ``max`` value is included in the allowed range.
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
DictField
Field
ListField
RegistryField

Definition at line 34 of file rangeField.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.pex.config.rangeField.RangeField.__init__ ( self,
doc,
dtype,
default = None,
optional = False,
min = None,
max = None,
inclusiveMin = True,
inclusiveMax = False,
deprecated = None )

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

Definition at line 81 of file rangeField.py.

92 ):
93 if dtype not in self.supportedTypes:
94 raise ValueError(f"Unsupported RangeField dtype {_typeStr(dtype)}")
95 source = getStackFrame()
96 if min is None and max is None:
97 raise ValueError("min and max cannot both be None")
98
99 if min is not None and max is not None:
100 if min > max:
101 raise ValueError(f"min = {min} > {max} = max")
102 elif min == max and not (inclusiveMin and inclusiveMax):
103 raise ValueError(f"min = max = {min} and min and max not both inclusive")
104
105 self.min = min
106 """Minimum value accepted in the range. If `None`, the range has no
107 lower bound (equivalent to negative infinity).
108 """
109
110 self.max = max
111 """Maximum value accepted in the range. If `None`, the range has no
112 upper bound (equivalent to positive infinity).
113 """
114
115 if inclusiveMax:
116 self.maxCheck = lambda x, y: True if y is None else x <= y
117 else:
118 self.maxCheck = lambda x, y: True if y is None else x < y
119 if inclusiveMin:
120 self.minCheck = lambda x, y: True if y is None else x >= y
121 else:
122 self.minCheck = lambda x, y: True if y is None else x > y
123 self._setup(
124 doc,
125 dtype=dtype,
126 default=default,
127 check=None,
128 optional=optional,
129 source=source,
130 deprecated=deprecated,
131 )
132 self.rangeString = "{}{},{}{}".format(
133 ("[" if inclusiveMin else "("),
134 ("-inf" if self.min is None else self.min),
135 ("inf" if self.max is None else self.max),
136 ("]" if inclusiveMax else ")"),
137 )
138 """String representation of the field's allowed range (`str`).
139 """
140
141 self.__doc__ += "\n\nValid Range = " + self.rangeString
142

Member Function Documentation

◆ _validateValue()

lsst.pex.config.rangeField.RangeField._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 143 of file rangeField.py.

143 def _validateValue(self, value):
144 Field._validateValue(self, value)
145 if not self.minCheck(value, self.min) or not self.maxCheck(value, self.max):
146 msg = f"{value} is outside of valid range {self.rangeString}"
147 raise ValueError(msg)

Member Data Documentation

◆ max

lsst.pex.config.rangeField.RangeField.max

Definition at line 110 of file rangeField.py.

◆ maxCheck

lsst.pex.config.rangeField.RangeField.maxCheck

Definition at line 116 of file rangeField.py.

◆ min

lsst.pex.config.rangeField.RangeField.min

Definition at line 105 of file rangeField.py.

◆ minCheck

lsst.pex.config.rangeField.RangeField.minCheck

Definition at line 120 of file rangeField.py.

◆ rangeString

lsst.pex.config.rangeField.RangeField.rangeString

Definition at line 132 of file rangeField.py.

◆ supportedTypes

dict lsst.pex.config.rangeField.RangeField.supportedTypes = {int, float}
static

Definition at line 76 of file rangeField.py.


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