The `@total_ordering` decorator already provide all the rich comparison
methods because we implement the __lt__() and __eq__() methods. So there
is no need to implement any other rich comparison methods.
I chose __lt__() arbitrarily but it could have been __le__(), __gt__(),
or __ge__().
Documentation on `@total_ordering` [1]:
The class must define one of __lt__(), __le__(), __gt__(), or
__ge__(). In addition, the class should supply an __eq__() method.
[1]: https://docs.python.org/3/library/functools.html#functools.total_ordering
Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Change-Id: I4c09ae725acadc59aa17d03063136ffc0dd854c2
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1544
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
return self._value < float(other)
- def __le__(self, other):
- if not isinstance(other, numbers.Number):
- raise TypeError('unorderable types: {}() <= {}()'.format(self.__class__.__name__,
- other.__class__.__name__))
-
- return self._value <= float(other)
-
def _spec_eq(self, other):
if not isinstance(other, numbers.Number):
return NotImplemented
return self._value == other
- def __le__(self, other):
- return self._value <= self._value_to_str(other)
-
def __lt__(self, other):
return self._value < self._value_to_str(other)
return self._value < float(other)
- def __le__(self, other):
- if not isinstance(other, numbers.Number):
- raise TypeError('unorderable types: {}() <= {}()'.format(self.__class__.__name__,
- other.__class__.__name__))
-
- return self._value <= float(other)
-
def _spec_eq(self, other):
pass
except:
return
- def __le__(self, other):
- return self._value <= self._value_to_str(other)
-
def __lt__(self, other):
return self._value < self._value_to_str(other)