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
# # LSST Data Management System # Copyright 2008, 2009, 2010 LSST Corporation. # # This product includes software developed by the # LSST Project (http://www.lsst.org/). # # 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 LSST License Statement and # the GNU General Public License along with this program. If not, # see <http://www.lsstcorp.org/LegalNotices/>. #
"""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.
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): 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 (("[" 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) |