diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2017-03-12 11:15:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-12 11:15:01 (GMT) |
commit | f6595983e08fe20cf06a2535d74d912c6dbb044f (patch) | |
tree | d25d4e69e082af9db5f9cc469eabb93834b0bd7d | |
parent | 1989763f0d0858ce6274f5e1d725b5b8da91a780 (diff) | |
download | cpython-f6595983e08fe20cf06a2535d74d912c6dbb044f.zip cpython-f6595983e08fe20cf06a2535d74d912c6dbb044f.tar.gz cpython-f6595983e08fe20cf06a2535d74d912c6dbb044f.tar.bz2 |
bpo-28692: Deprecate using non-integer value for selecting a plural form in gettext. (#507)
-rw-r--r-- | Doc/whatsnew/3.7.rst | 4 | ||||
-rw-r--r-- | Lib/gettext.py | 4 | ||||
-rw-r--r-- | Lib/test/test_gettext.py | 9 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 17 insertions, 3 deletions
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst index 71ae10b..4f84e6d 100644 --- a/Doc/whatsnew/3.7.rst +++ b/Doc/whatsnew/3.7.rst @@ -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 ======= diff --git a/Lib/gettext.py b/Lib/gettext.py index 57d2c74..aa1d555 100644 --- a/Lib/gettext.py +++ b/Lib/gettext.py @@ -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): diff --git a/Lib/test/test_gettext.py b/Lib/test/test_gettext.py index a852443..7bfe747 100644 --- a/Lib/test/test_gettext.py +++ b/Lib/test/test_gettext.py @@ -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, []) @@ -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(). |