aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHobson Lane <>2011-07-23 07:14:05 +0000
committerOlivier Tilloy <olivier@tilloy.net>2011-07-23 07:14:05 +0000
commitd9ed549e2cb809c279db7b33fd7aa4bc2080f18c (patch)
tree379553450aa46ac1184282f73f26c4d180e56e37
parent606382449ece9560f9fc7b7ed1dc64a028d68cba (diff)
parent81093f74b52dab98f5f0e21fd0f1067b5f097e9c (diff)
downloadpyexiv2-d9ed549e2cb809c279db7b33fd7aa4bc2080f18c.tar.gz
Added a __repr__ method to the Rational class.
-rw-r--r--doc/api.rst2
-rw-r--r--src/pyexiv2/utils.py8
-rw-r--r--test/rational.py5
3 files changed, 14 insertions, 1 deletions
diff --git a/doc/api.rst b/doc/api.rst
index a91122b..ad626d9 100644
--- a/doc/api.rst
+++ b/doc/api.rst
@@ -67,7 +67,7 @@ pyexiv2.utils
.. autofunction:: make_fraction
.. autoclass:: Rational
- :members: numerator, denominator, from_string, to_float, __eq__
+ :members: numerator, denominator, from_string, to_float, __eq__, __str__, __repr__
.. autoclass:: GPSCoordinate
:members: degrees, minutes, seconds, direction, from_string, __eq__, __str__
diff --git a/src/pyexiv2/utils.py b/src/pyexiv2/utils.py
index 22a05f7..de56c21 100644
--- a/src/pyexiv2/utils.py
+++ b/src/pyexiv2/utils.py
@@ -269,6 +269,14 @@ class Rational(object):
"""
return '%d/%d' % (self._numerator, self._denominator)
+ def __repr__(self):
+ """
+ :return: the official string representation of the object
+ :rtype: string
+ """
+ return '%s(%d, %d)' % (self.__class__.__name__, self._numerator, self._denominator)
+
+
def is_fraction(obj):
"""
diff --git a/test/rational.py b/test/rational.py
index bff8e5f..bc49e9f 100644
--- a/test/rational.py
+++ b/test/rational.py
@@ -76,6 +76,11 @@ class TestRational(unittest.TestCase):
self.assertEqual(str(Rational(3, 5)), '3/5')
self.assertEqual(str(Rational(-3, 5)), '-3/5')
+ def test_repr(self):
+ self.assertEqual(repr(Rational(3, 5)), 'Rational(3, 5)')
+ self.assertEqual(repr(Rational(-3, 5)), 'Rational(-3, 5)')
+ self.assertEqual(repr(Rational(0, 3)), 'Rational(0, 3)')
+
def test_to_float(self):
self.assertEqual(Rational(3, 6).to_float(), 0.5)
self.assertEqual(Rational(11, 11).to_float(), 1.0)