Beispiel #1
0
 def _sanitize_single_value(
         field: str, value: Optional[float]) -> Optional[EvalableFloat]:
     if value is None:
         return None
     if isinstance(value, (int, float)):
         return EvalableFloat(value)
     raise TypeError("%s values for metric must be float, int or None" %
                     field)
Beispiel #2
0
    def __init__(
        self,
        name: str,
        value: float,
        *,
        levels: _OptionalPair = None,
        boundaries: _OptionalPair = None,
    ) -> None:
        self.validate_name(name)

        if not isinstance(value, (int, float)):
            raise TypeError("value for metric must be float or int, got %r" %
                            (value, ))

        self._name = name
        self._value = EvalableFloat(value)
        self._levels = self._sanitize_optionals('levels', levels)
        self._boundaries = self._sanitize_optionals('boundaries', boundaries)
Beispiel #3
0
    def __new__(
        cls,
        name: str,
        value: float,
        *,
        levels: _OptionalPair = None,
        boundaries: _OptionalPair = None,
    ) -> 'Metric':
        cls._validate_name(name)

        if not isinstance(value, (int, float)):
            raise TypeError("value for metric must be float or int, got %r" % (value,))

        return super().__new__(
            cls,
            name=name,
            value=EvalableFloat(value),
            levels=cls._sanitize_optionals('levels', levels),
            boundaries=cls._sanitize_optionals('boundaries', boundaries),
        )
Beispiel #4
0
def test_evalable_float():
    inf = EvalableFloat('inf')
    assert literal_eval("%r" % inf) == float('inf')