]> granicus.if.org Git - python/commitdiff
bpo-28692: Deprecate using non-integer value for selecting a plural form in gettext...
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 12 Mar 2017 11:15:01 +0000 (13:15 +0200)
committerGitHub <noreply@github.com>
Sun, 12 Mar 2017 11:15:01 +0000 (13:15 +0200)
Doc/whatsnew/3.7.rst
Lib/gettext.py
Lib/test/test_gettext.py
Misc/NEWS

index 71ae10bbb16abce55bdd14c53ecd4a51453b69cf..4f84e6df28d161759619e04679bb0386cfce9f6c 100644 (file)
@@ -180,6 +180,10 @@ Deprecated
   both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`. (Contributed
   by Matthias Bussonnier in :issue:`29576`)
 
+- Using non-integer value for selecting a plural form in :mod:`gettext` is
+  now deprecated.  It never correctly worked.
+  (Contributed by Serhiy Storchaka in :issue:`28692`.)
+
 
 Removed
 =======
index 57d2c74982e1d49382f69d6743e1760e634468d7..aa1d55561f98980ef36e99493e92c98e36862e0d 100644 (file)
@@ -164,6 +164,10 @@ def _as_int(n):
     except TypeError:
         raise TypeError('Plural value must be an integer, got %s' %
                         (n.__class__.__name__,)) from None
+    import warnings
+    warnings.warn('Plural value must be an integer, got %s' %
+                  (n.__class__.__name__,),
+                  DeprecationWarning, 4)
     return n
 
 def c2py(plural):
index a852443e687837ebe4a5b00b00e8816fdb2859c5..7bfe747d3baddaf75096ea46ae617d0c61c3158d 100644 (file)
@@ -443,9 +443,12 @@ class PluralFormsTestCase(GettextBaseTest):
         f = gettext.c2py('n != 1')
         self.assertEqual(f(1), 0)
         self.assertEqual(f(2), 1)
-        self.assertEqual(f(1.0), 0)
-        self.assertEqual(f(2.0), 1)
-        self.assertEqual(f(1.1), 1)
+        with self.assertWarns(DeprecationWarning):
+            self.assertEqual(f(1.0), 0)
+        with self.assertWarns(DeprecationWarning):
+            self.assertEqual(f(2.0), 1)
+        with self.assertWarns(DeprecationWarning):
+            self.assertEqual(f(1.1), 1)
         self.assertRaises(TypeError, f, '2')
         self.assertRaises(TypeError, f, b'2')
         self.assertRaises(TypeError, f, [])
index 694bc34441faa4b642db5b96e97c4f91978ac62e..03ca0dce386334b4c3901e413a8cc7c0f3b42064 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -270,6 +270,9 @@ Extension Modules
 Library
 -------
 
+- bpo-28692: Using non-integer value for selecting a plural form in gettext is
+  now deprecated.
+
 - bpo-26121: Use C library implementation for math functions:
   tgamma(), lgamma(), erf() and erfc().