summaryrefslogtreecommitdiffstats
path: root/Lib/fractions.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fractions.py')
-rw-r--r--Lib/fractions.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/Lib/fractions.py b/Lib/fractions.py
index 5655039..34fd080 100644
--- a/Lib/fractions.py
+++ b/Lib/fractions.py
@@ -3,7 +3,6 @@
"""Fraction, infinite-precision, rational numbers."""
-from decimal import Decimal
import functools
import math
import numbers
@@ -244,7 +243,9 @@ class Fraction(numbers.Rational):
self._denominator = numerator.denominator
return self
- elif isinstance(numerator, (float, Decimal)):
+ elif (isinstance(numerator, float) or
+ (not isinstance(numerator, type) and
+ hasattr(numerator, 'as_integer_ratio'))):
# Exact conversion
self._numerator, self._denominator = numerator.as_integer_ratio()
return self
@@ -278,8 +279,7 @@ class Fraction(numbers.Rational):
numerator = -numerator
else:
- raise TypeError("argument should be a string "
- "or a Rational instance")
+ raise TypeError("argument should be a string or a number")
elif type(numerator) is int is type(denominator):
pass # *very* normal case