lib: strictly type function return status enumerations
[babeltrace.git] / src / bindings / python / bt2 / bt2 / field.py
index ee28315790cf35851170b2f5686458611a4e5474..0f3e5e7ee32eb11b797f370723f52de5145ca098 100644 (file)
@@ -167,34 +167,6 @@ class _NumericField(_Field):
     def __rpow__(self, base):
         return self._extract_value(base) ** self._value
 
-    def __iadd__(self, other):
-        self.value = self + other
-        return self
-
-    def __isub__(self, other):
-        self.value = self - other
-        return self
-
-    def __imul__(self, other):
-        self.value = self * other
-        return self
-
-    def __itruediv__(self, other):
-        self.value = self / other
-        return self
-
-    def __ifloordiv__(self, other):
-        self.value = self // other
-        return self
-
-    def __imod__(self, other):
-        self.value = self % other
-        return self
-
-    def __ipow__(self, other):
-        self.value = self ** other
-        return self
-
 
 class _IntegralField(_NumericField, numbers.Integral):
     def __lshift__(self, other):
@@ -230,26 +202,6 @@ class _IntegralField(_NumericField, numbers.Integral):
     def __invert__(self):
         return ~self._value
 
-    def __ilshift__(self, other):
-        self.value = self << other
-        return self
-
-    def __irshift__(self, other):
-        self.value = self >> other
-        return self
-
-    def __iand__(self, other):
-        self.value = self & other
-        return self
-
-    def __ixor__(self, other):
-        self.value = self ^ other
-        return self
-
-    def __ior__(self, other):
-        self.value = self | other
-        return self
-
 
 class _IntegerField(_IntegralField, _Field):
     pass
@@ -259,8 +211,8 @@ class _UnsignedIntegerField(_IntegerField, _Field):
     _NAME = 'Unsigned integer'
 
     def _value_to_int(self, value):
-        if not isinstance(value, numbers.Real):
-            raise TypeError('expecting a real number object')
+        if not isinstance(value, numbers.Integral):
+            raise TypeError('expecting an integral number object')
 
         value = int(value)
         utils._check_uint64(value)
@@ -282,8 +234,8 @@ class _SignedIntegerField(_IntegerField, _Field):
     _NAME = 'Signed integer'
 
     def _value_to_int(self, value):
-        if not isinstance(value, numbers.Real):
-            raise TypeError('expecting a real number object')
+        if not isinstance(value, numbers.Integral):
+            raise TypeError('expecting an integral number object')
 
         value = int(value)
         utils._check_int64(value)
@@ -327,8 +279,9 @@ class _EnumerationField(_IntegerField):
 
     @property
     def labels(self):
-        ret, labels = self._get_mapping_labels(self._ptr)
-        utils._handle_ret(ret, "cannot get label for enumeration field")
+        status, labels = self._get_mapping_labels(self._ptr)
+        utils._handle_func_status(status,
+                                  "cannot get label for enumeration field")
 
         assert labels is not None
         return labels
@@ -393,8 +346,9 @@ class _StringField(_Field):
 
     def __iadd__(self, value):
         value = self._value_to_str(value)
-        ret = native_bt.field_string_append(self._ptr, value)
-        utils._handle_ret(ret, "cannot append to string field object's value")
+        status = native_bt.field_string_append(self._ptr, value)
+        utils._handle_func_status(status,
+                                  "cannot append to string field object's value")
         return self
 
 
@@ -543,10 +497,6 @@ class _ArrayField(_ContainerField, _Field, collections.abc.MutableSequence):
                                       self._owner_put_ref)
 
     def __setitem__(self, index, value):
-        # we can only set numbers and strings
-        if not isinstance(value, (numbers.Number, _StringField, str)):
-            raise TypeError('expecting number or string object')
-
         # raises if index is somehow invalid
         field = self[index]
 
@@ -604,8 +554,8 @@ class _DynamicArrayField(_ArrayField, _Field):
 
     def _set_length(self, length):
         utils._check_uint64(length)
-        ret = native_bt.field_dynamic_array_set_length(self._ptr, length)
-        utils._handle_ret(ret, "cannot set dynamic array length")
+        status = native_bt.field_dynamic_array_set_length(self._ptr, length)
+        utils._handle_func_status(status, "cannot set dynamic array length")
 
     length = property(fget=_ArrayField._get_length, fset=_set_length)
 
This page took 0.026266 seconds and 4 git commands to generate.