[Python-checkins] r87056 - in python/branches/py3k: Lib/argparse.py Lib/test/test_argparse.py Misc/NEWS

eric.araujo python-checkins at python.org
Sat Dec 4 18:31:49 CET 2010


Author: eric.araujo
Date: Sat Dec  4 18:31:49 2010
New Revision: 87056

Log:
Use proper plural forms in argparse (#4391)


Modified:
   python/branches/py3k/Lib/argparse.py
   python/branches/py3k/Lib/test/test_argparse.py
   python/branches/py3k/Misc/NEWS

Modified: python/branches/py3k/Lib/argparse.py
==============================================================================
--- python/branches/py3k/Lib/argparse.py	(original)
+++ python/branches/py3k/Lib/argparse.py	Sat Dec  4 18:31:49 2010
@@ -88,7 +88,7 @@
 import sys as _sys
 import textwrap as _textwrap
 
-from gettext import gettext as _
+from gettext import gettext as _, ngettext
 
 
 def _callable(obj):
@@ -1438,7 +1438,9 @@
             conflict_handler(action, confl_optionals)
 
     def _handle_conflict_error(self, action, conflicting_actions):
-        message = _('conflicting option string(s): %s')
+        message = ngettext('conflicting option string: %s',
+                           'conflicting option strings: %s',
+                           len(conflicting_actions))
         conflict_string = ', '.join([option_string
                                      for option_string, action
                                      in conflicting_actions])
@@ -1995,7 +1997,9 @@
                 OPTIONAL: _('expected at most one argument'),
                 ONE_OR_MORE: _('expected at least one argument'),
             }
-            default = _('expected %s argument(s)') % action.nargs
+            default = ngettext('expected %s argument',
+                               'expected %s arguments',
+                               action.nargs) % action.nargs
             msg = nargs_errors.get(action.nargs, default)
             raise ArgumentError(action, msg)
 

Modified: python/branches/py3k/Lib/test/test_argparse.py
==============================================================================
--- python/branches/py3k/Lib/test/test_argparse.py	(original)
+++ python/branches/py3k/Lib/test/test_argparse.py	Sat Dec  4 18:31:49 2010
@@ -4315,7 +4315,7 @@
         items = [
             name
             for name, value in vars(argparse).items()
-            if not name.startswith("_")
+            if not (name.startswith("_") or name == 'ngettext')
             if not inspect.ismodule(value)
         ]
         self.assertEqual(sorted(items), sorted(argparse.__all__))

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Sat Dec  4 18:31:49 2010
@@ -49,6 +49,8 @@
 Library
 -------
 
+- Issue #4391: Use proper plural forms in argparse.
+
 - Issue #10601: sys.displayhook uses 'backslashreplace' error handler on
   UnicodeEncodeError.
 


More information about the Python-checkins mailing list