Implement __repr__ for _StringField
[babeltrace.git] / bindings / python / bt2 / bt2 / fields.py
index 8f0d3203f9c3b35e119bee6c0150c0424072b341..0bfbc58f8aaa296bac8f44ac78041a98961f92fa 100644 (file)
@@ -110,8 +110,8 @@ class _NumericField(_Field):
     def __float__(self):
         return float(self._value)
 
-    def __str__(self):
-        return str(self._value)
+    def __repr__(self):
+        return repr(self._value)
 
     def __lt__(self, other):
         if not isinstance(other, numbers.Number):
@@ -324,6 +324,7 @@ class _IntegerField(_IntegralField):
 
     value = property(fset=_set_value)
 
+
 class _FloatingPointNumberField(_RealField):
     _NAME = 'Floating point number'
 
@@ -352,6 +353,7 @@ class _FloatingPointNumberField(_RealField):
 
     value = property(fset=_set_value)
 
+
 class _EnumerationField(_IntegerField):
     _NAME = 'Enumeration'
 
@@ -364,6 +366,10 @@ class _EnumerationField(_IntegerField):
     def _set_value(self, value):
         self.integer_field.value = value
 
+    def __repr__(self):
+        labels = [repr(v.name) for v in self.mappings]
+        return '{} ({})'.format(self._value, ', '.join(labels))
+
     value = property(fset=_set_value)
 
     @property
@@ -420,6 +426,9 @@ class _StringField(_Field, collections.abc.Sequence):
     def __bool__(self):
         return bool(self._value)
 
+    def __repr__(self):
+        return repr(self._value)
+
     def __str__(self):
         return self._value
 
@@ -520,6 +529,11 @@ class _StructureField(_ContainerField, collections.abc.MutableMapping):
 
     value = property(fset=_set_value)
 
+    def __repr__(self):
+        items = ['{}: {}'.format(repr(k), repr(v)) for k, v in self.items()]
+        return '{{{}}}'.format(', '.join(items))
+
+
 class _VariantField(_Field):
     _NAME = 'Variant'
 
@@ -555,6 +569,9 @@ class _VariantField(_Field):
     def __bool__(self):
         return bool(self.selected_field)
 
+    def __repr__(self):
+        return repr(self._value)
+
     @property
     def _value(self):
         if self.selected_field is not None:
@@ -565,6 +582,7 @@ class _VariantField(_Field):
 
     value = property(fset=_set_value)
 
+
 class _ArraySequenceField(_ContainerField, collections.abc.MutableSequence):
     def __getitem__(self, index):
         if not isinstance(index, numbers.Integral):
@@ -614,6 +632,9 @@ class _ArraySequenceField(_ContainerField, collections.abc.MutableSequence):
     def _value(self):
         return [field._value for field in self]
 
+    def __repr__(self):
+        return '[{}]'.format(', '.join([repr(v) for v in self]))
+
 
 class _ArrayField(_ArraySequenceField):
     _NAME = 'Array'
@@ -693,6 +714,7 @@ class _SequenceField(_ArraySequenceField):
 
     value = property(fset=_set_value)
 
+
 _TYPE_ID_TO_OBJ = {
     native_bt.FIELD_TYPE_ID_INTEGER: _IntegerField,
     native_bt.FIELD_TYPE_ID_FLOAT: _FloatingPointNumberField,
This page took 0.027192 seconds and 4 git commands to generate.