Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Revert "Restore back _normalize kwarg for the Fraction.__new__()"
This reverts commit 4324391.
  • Loading branch information
skirpichev committed Feb 27, 2023
commit 13262af7b792160a5ffec326c7be140afe1dbb40
13 changes: 6 additions & 7 deletions Lib/fractions.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ class Fraction(numbers.Rational):
__slots__ = ('_numerator', '_denominator')

# We're immutable, so use __new__ not __init__
def __new__(cls, numerator=0, denominator=None, *, _normalize=True):
def __new__(cls, numerator=0, denominator=None):
Comment thread
skirpichev marked this conversation as resolved.
"""Constructs a Rational.

Takes a string like '3/2' or '1.5', another Rational instance, a
Expand Down Expand Up @@ -279,12 +279,11 @@ def __new__(cls, numerator=0, denominator=None, *, _normalize=True):

if denominator == 0:
raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
if _normalize:
g = math.gcd(numerator, denominator)
if denominator < 0:
g = -g
numerator //= g
denominator //= g
g = math.gcd(numerator, denominator)
if denominator < 0:
g = -g
numerator //= g
denominator //= g
self._numerator = numerator
self._denominator = denominator
return self
Expand Down