Fix: bt2: erroneous integer comparison of Field and Value
[babeltrace.git] / src / bindings / python / bt2 / bt2 / field.py
index 62dac5ff6cb7a54386334c723ec743d542670289..f5b9b59645365bcfcca2079101986fa516109602 100644 (file)
@@ -101,13 +101,6 @@ class _NumericField(_Field):
 
         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
@@ -257,6 +250,18 @@ class _IntegralField(_NumericField, numbers.Integral):
         self.value = self | other
         return self
 
+    def __lt__(self, other):
+        if not isinstance(other, numbers.Integral):
+            return super().__lt__(other);
+
+        return self._value < int(other)
+
+    def _spec_eq(self, other):
+        if not isinstance(other, numbers.Integral):
+            return super()._spec_eq(other);
+
+        return self._value == int(other)
+
 
 class _IntegerField(_IntegralField, _Field):
     pass
@@ -382,9 +387,6 @@ class _StringField(_Field):
 
         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)
 
This page took 0.025648 seconds and 4 git commands to generate.