Skip to content

Commit 4324391

Browse files
committed
Restore back _normalize kwarg for the Fraction.__new__()
1 parent 9e66b5a commit 4324391

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

Lib/fractions.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ class Fraction(numbers.Rational):
183183
__slots__ = ('_numerator', '_denominator')
184184

185185
# We're immutable, so use __new__ not __init__
186-
def __new__(cls, numerator=0, denominator=None):
186+
def __new__(cls, numerator=0, denominator=None, *, _normalize=True):
187187
"""Constructs a Rational.
188188
189189
Takes a string like '3/2' or '1.5', another Rational instance, a
@@ -279,11 +279,12 @@ def __new__(cls, numerator=0, denominator=None):
279279

280280
if denominator == 0:
281281
raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
282-
g = math.gcd(numerator, denominator)
283-
if denominator < 0:
284-
g = -g
285-
numerator //= g
286-
denominator //= g
282+
if _normalize:
283+
g = math.gcd(numerator, denominator)
284+
if denominator < 0:
285+
g = -g
286+
numerator //= g
287+
denominator //= g
287288
self._numerator = numerator
288289
self._denominator = denominator
289290
return self

0 commit comments

Comments
 (0)