From b21aa9f9493c55eb15b1b48e00eef05bb528e064 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 22 Dec 2017 11:08:40 +0100 Subject: o Allow __lt__ to work when only one unit is set. --- src/ee/__init__.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ee/__init__.py b/src/ee/__init__.py index 7f228f8..aa2c109 100644 --- a/src/ee/__init__.py +++ b/src/ee/__init__.py @@ -86,7 +86,17 @@ class EeVal(object): return math.isclose(self.__float__(), other.__float__()) and self._unit == other._unit def __lt__(self, other): - return ((self.__float__(), self._unit) < (other.__float__(), other._unit)) +# return ((self.__float__(), self._unit) < (other.__float__(), other._unit)) + + x = self.__float__() < other.__float__() + if x != 0: + return x + if self._unit is None and other._unit is None: + return 0 + if self._unit is not None and other._unit is not None: + return self._unit < other._unit + + return 1 if self.unit is not None else -1 def __str__(self): return eng_str(self.__float__(), self._unit) -- cgit v1.2.3