Coverage for python/lsst/pex/config/rangeField.py : 48%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# This file is part of pex_config. # # Developed for the LSST Data Management System. # This product includes software developed by the LSST Project # (http://www.lsst.org). # See the COPYRIGHT file at the top-level directory of this distribution # for details of code ownership. # # This software is dual licensed under the GNU General Public License and also # under a 3-clause BSD license. Recipients may choose which of these licenses # to use; please see the files gpl-3.0.txt and/or bsd_license.txt, # respectively. If you choose the GPL option then the following text applies # (but note that there is still no warranty even if you opt for BSD instead): # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""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` (default), the ``min`` value is included in the allowed range. inclusiveMax : `bool`, optional If `True` (default), 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 """
"""The set of data types allowed by `RangeField` instances (`set` containing `int` and `float` types). """
min=None, max=None, inclusiveMin=True, inclusiveMax=False, deprecated=None): raise ValueError("Unsupported RangeField dtype %s" % (_typeStr(dtype))) raise ValueError("min and max cannot both be None")
if min > max: raise ValueError("min = %s > %s = max" % (min, max)) elif min == max and not (inclusiveMin and inclusiveMax): raise ValueError("min = max = %s and min and max not both inclusive" % (min,))
"""Minimum value accepted in the range. If `None`, the range has no lower bound (equivalent to negative infinity). """
"""Maximum value accepted in the range. If `None`, the range has no upper bound (equivalent to positive infinity). """
self.maxCheck = lambda x, y: True if y is None else x <= y else: else: self.minCheck = lambda x, y: True if y is None else x > y deprecated=deprecated) (("[" if inclusiveMin else "("), ("-inf" if self.min is None else self.min), ("inf" if self.max is None else self.max), ("]" if inclusiveMax else ")")) """String representation of the field's allowed range (`str`). """
Field._validateValue(self, value) if not self.minCheck(value, self.min) or \ not self.maxCheck(value, self.max): msg = "%s is outside of valid range %s" % (value, self.rangeString) raise ValueError(msg) |