[Python-checkins] cpython: Issue #27832: Make _normalize parameter to Fraction.__init__ keyword-only.

mark.dickinson python-checkins at python.org
Tue Aug 23 11:17:10 EDT 2016


https://hg.python.org/cpython/rev/ea495a5ded9b
changeset:   102857:ea495a5ded9b
user:        Mark Dickinson <dickinsm at gmail.com>
date:        Tue Aug 23 16:16:52 2016 +0100
summary:
  Issue #27832: Make _normalize parameter to Fraction.__init__ keyword-only.

files:
  Lib/fractions.py           |  2 +-
  Lib/test/test_fractions.py |  1 +
  Misc/NEWS                  |  3 +++
  3 files changed, 5 insertions(+), 1 deletions(-)


diff --git a/Lib/fractions.py b/Lib/fractions.py
--- a/Lib/fractions.py
+++ b/Lib/fractions.py
@@ -81,7 +81,7 @@
     __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, *, _normalize=True):
         """Constructs a Rational.
 
         Takes a string like '3/2' or '1.5', another Rational instance, a
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
--- a/Lib/test/test_fractions.py
+++ b/Lib/test/test_fractions.py
@@ -150,6 +150,7 @@
         self.assertRaises(TypeError, F, "3/2", 3)
         self.assertRaises(TypeError, F, 3, 0j)
         self.assertRaises(TypeError, F, 3, 1j)
+        self.assertRaises(TypeError, F, 1, 2, 3)
 
     @requires_IEEE_754
     def testInitFromFloat(self):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -46,6 +46,9 @@
 Library
 -------
 
+- Issue #27832: Make ``_normalize`` parameter to ``Fraction`` constuctor
+  keyword-only, so that ``Fraction(2, 3, 4)`` now raises ``TypeError``.
+
 - Issue #27539: Fix unnormalised ``Fraction.__pow__`` result in the case
   of negative exponent and negative base.
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list