Commit f6595983 authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub

bpo-28692: Deprecate using non-integer value for selecting a plural form in gettext. (#507)

parent 1989763f
...@@ -180,6 +180,10 @@ Deprecated ...@@ -180,6 +180,10 @@ Deprecated
both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`. (Contributed both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`. (Contributed
by Matthias Bussonnier in :issue:`29576`) 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 Removed
======= =======
......
...@@ -164,6 +164,10 @@ def _as_int(n): ...@@ -164,6 +164,10 @@ def _as_int(n):
except TypeError: except TypeError:
raise TypeError('Plural value must be an integer, got %s' % raise TypeError('Plural value must be an integer, got %s' %
(n.__class__.__name__,)) from None (n.__class__.__name__,)) from None
import warnings
warnings.warn('Plural value must be an integer, got %s' %
(n.__class__.__name__,),
DeprecationWarning, 4)
return n return n
def c2py(plural): def c2py(plural):
......
...@@ -443,9 +443,12 @@ class PluralFormsTestCase(GettextBaseTest): ...@@ -443,9 +443,12 @@ class PluralFormsTestCase(GettextBaseTest):
f = gettext.c2py('n != 1') f = gettext.c2py('n != 1')
self.assertEqual(f(1), 0) self.assertEqual(f(1), 0)
self.assertEqual(f(2), 1) self.assertEqual(f(2), 1)
self.assertEqual(f(1.0), 0) with self.assertWarns(DeprecationWarning):
self.assertEqual(f(2.0), 1) self.assertEqual(f(1.0), 0)
self.assertEqual(f(1.1), 1) 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, '2')
self.assertRaises(TypeError, f, b'2') self.assertRaises(TypeError, f, b'2')
self.assertRaises(TypeError, f, []) self.assertRaises(TypeError, f, [])
......
...@@ -270,6 +270,9 @@ Extension Modules ...@@ -270,6 +270,9 @@ Extension Modules
Library 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: - bpo-26121: Use C library implementation for math functions:
tgamma(), lgamma(), erf() and erfc(). tgamma(), lgamma(), erf() and erfc().
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment