mirror of
https://github.com/python/cpython.git
synced 2025-07-08 03:45:36 +00:00
Mark getopt error messages as localizable (fixes #11371).
Patch by Filip Gruszczyński.
This commit is contained in:
parent
16e6f4c3f0
commit
eda5583bdc
2 changed files with 11 additions and 7 deletions
|
@ -19,7 +19,7 @@ option involved with the exception.
|
||||||
# Gerrit Holl <gerrit@nl.linux.org> moved the string-based exceptions
|
# Gerrit Holl <gerrit@nl.linux.org> moved the string-based exceptions
|
||||||
# to class-based exceptions.
|
# to class-based exceptions.
|
||||||
#
|
#
|
||||||
# Peter Ã
strand <astrand@lysator.liu.se> added gnu_getopt().
|
# Peter Åstrand <astrand@lysator.liu.se> added gnu_getopt().
|
||||||
#
|
#
|
||||||
# TODO for gnu_getopt():
|
# TODO for gnu_getopt():
|
||||||
#
|
#
|
||||||
|
@ -34,6 +34,7 @@ option involved with the exception.
|
||||||
__all__ = ["GetoptError","error","getopt","gnu_getopt"]
|
__all__ = ["GetoptError","error","getopt","gnu_getopt"]
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
class GetoptError(Exception):
|
class GetoptError(Exception):
|
||||||
opt = ''
|
opt = ''
|
||||||
|
@ -153,10 +154,10 @@ def do_longs(opts, opt, longopts, args):
|
||||||
if has_arg:
|
if has_arg:
|
||||||
if optarg is None:
|
if optarg is None:
|
||||||
if not args:
|
if not args:
|
||||||
raise GetoptError('option --%s requires argument' % opt, opt)
|
raise GetoptError(_('option --%s requires argument') % opt, opt)
|
||||||
optarg, args = args[0], args[1:]
|
optarg, args = args[0], args[1:]
|
||||||
elif optarg is not None:
|
elif optarg is not None:
|
||||||
raise GetoptError('option --%s must not have an argument' % opt, opt)
|
raise GetoptError(_('option --%s must not have an argument') % opt, opt)
|
||||||
opts.append(('--' + opt, optarg or ''))
|
opts.append(('--' + opt, optarg or ''))
|
||||||
return opts, args
|
return opts, args
|
||||||
|
|
||||||
|
@ -166,7 +167,7 @@ def do_longs(opts, opt, longopts, args):
|
||||||
def long_has_args(opt, longopts):
|
def long_has_args(opt, longopts):
|
||||||
possibilities = [o for o in longopts if o.startswith(opt)]
|
possibilities = [o for o in longopts if o.startswith(opt)]
|
||||||
if not possibilities:
|
if not possibilities:
|
||||||
raise GetoptError('option --%s not recognized' % opt, opt)
|
raise GetoptError(_('option --%s not recognized') % opt, opt)
|
||||||
# Is there an exact match?
|
# Is there an exact match?
|
||||||
if opt in possibilities:
|
if opt in possibilities:
|
||||||
return False, opt
|
return False, opt
|
||||||
|
@ -176,7 +177,7 @@ def long_has_args(opt, longopts):
|
||||||
if len(possibilities) > 1:
|
if len(possibilities) > 1:
|
||||||
# XXX since possibilities contains all valid continuations, might be
|
# XXX since possibilities contains all valid continuations, might be
|
||||||
# nice to work them into the error msg
|
# nice to work them into the error msg
|
||||||
raise GetoptError('option --%s not a unique prefix' % opt, opt)
|
raise GetoptError(_('option --%s not a unique prefix') % opt, opt)
|
||||||
assert len(possibilities) == 1
|
assert len(possibilities) == 1
|
||||||
unique_match = possibilities[0]
|
unique_match = possibilities[0]
|
||||||
has_arg = unique_match.endswith('=')
|
has_arg = unique_match.endswith('=')
|
||||||
|
@ -190,7 +191,7 @@ def do_shorts(opts, optstring, shortopts, args):
|
||||||
if short_has_arg(opt, shortopts):
|
if short_has_arg(opt, shortopts):
|
||||||
if optstring == '':
|
if optstring == '':
|
||||||
if not args:
|
if not args:
|
||||||
raise GetoptError('option -%s requires argument' % opt,
|
raise GetoptError(_('option -%s requires argument') % opt,
|
||||||
opt)
|
opt)
|
||||||
optstring, args = args[0], args[1:]
|
optstring, args = args[0], args[1:]
|
||||||
optarg, optstring = optstring, ''
|
optarg, optstring = optstring, ''
|
||||||
|
@ -203,7 +204,7 @@ def short_has_arg(opt, shortopts):
|
||||||
for i in range(len(shortopts)):
|
for i in range(len(shortopts)):
|
||||||
if opt == shortopts[i] != ':':
|
if opt == shortopts[i] != ':':
|
||||||
return shortopts.startswith(':', i+1)
|
return shortopts.startswith(':', i+1)
|
||||||
raise GetoptError('option -%s not recognized' % opt, opt)
|
raise GetoptError(_('option -%s not recognized') % opt, opt)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import sys
|
import sys
|
||||||
|
|
|
@ -75,6 +75,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #11371: Mark getopt error messages as localizable. Patch by Filip
|
||||||
|
Gruszczyński.
|
||||||
|
|
||||||
- Issue #4391: Use proper gettext plural forms in optparse.
|
- Issue #4391: Use proper gettext plural forms in optparse.
|
||||||
|
|
||||||
- Issue #11563: Connection:close header is sent by requests using URLOpener
|
- Issue #11563: Connection:close header is sent by requests using URLOpener
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue