Implement __repr__ instead of __str__ for _NumericField
[babeltrace.git] / bindings / python / bt2 / bt2 / fields.py
index 2f910635c4348bd9544580457fc4f9b828682e49..2e2796c901c127b8b60ad3287f18fc60db802948 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):
@@ -526,6 +526,10 @@ 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'
@@ -562,6 +566,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:
@@ -622,6 +629,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'
This page took 0.023538 seconds and 4 git commands to generate.