FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Issue #13248: argparse: Remove obsolete argument "version" of Argumen… · python/cpython@af1adbe · GitHub

Repository navigation

Commit af1adbe

Browse files
committed
Issue #13248: argparse: Remove obsolete argument "version" of ArgumentParser.
1 parent 3008ec0 commit af1adbe

3 files changed

Lines changed: 39 additions & 79 deletions

File tree

‎Lib/argparse.py‎

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1579,7 +1579,6 @@ def __init__(self,
15791579
usage=None,
15801580
description=None,
15811581
epilog=None,
1582-
version=None,
15831582
parents=[],
15841583
formatter_class=HelpFormatter,
15851584
prefix_chars='-',
@@ -1588,14 +1587,6 @@ def __init__(self,
15881587
conflict_handler='error',
15891588
add_help=True):
15901589

1591-
if version is not None:
1592-
import warnings
1593-
warnings.warn(
1594-
"""The "version" argument to ArgumentParser is deprecated. """
1595-
"""Please use """
1596-
""""add_argument(..., action='version', version="N", ...)" """
1597-
"""instead""", DeprecationWarning)
1598-
15991590
superinit = super(ArgumentParser, self).__init__
16001591
superinit(description=description,
16011592
prefix_chars=prefix_chars,
@@ -1609,7 +1600,6 @@ def __init__(self,
16091600
self.prog = prog
16101601
self.usage = usage
16111602
self.epilog = epilog
1612-
self.version = version
16131603
self.formatter_class = formatter_class
16141604
self.fromfile_prefix_chars = fromfile_prefix_chars
16151605
self.add_help = add_help
@@ -1624,20 +1614,14 @@ def identity(string):
16241614
return string
16251615
self.register('type', None, identity)
16261616

1627-
# add help and version arguments if necessary
1617+
# add help argument if necessary
16281618
# (using explicit default to override global argument_default)
16291619
default_prefix = '-' if '-' in prefix_chars else prefix_chars[0]
16301620
if self.add_help:
16311621
self.add_argument(
16321622
default_prefix+'h', default_prefix*2+'help',
16331623
action='help', default=SUPPRESS,
16341624
help=_('show this help message and exit'))
1635-
if self.version:
1636-
self.add_argument(
1637-
default_prefix+'v', default_prefix*2+'version',
1638-
action='version', default=SUPPRESS,
1639-
version=self.version,
1640-
help=_("show program's version number and exit"))
16411625

16421626
# add parent arguments and defaults
16431627
for parent in parents:
@@ -1657,7 +1641,6 @@ def _get_kwargs(self):
16571641
'prog',
16581642
'usage',
16591643
'description',
1660-
'version',
16611644
'formatter_class',
16621645
'conflict_handler',
16631646
'add_help',
@@ -2320,16 +2303,6 @@ def format_help(self):
23202303
# determine help from format above
23212304
return formatter.format_help()
23222305

2323-
def format_version(self):
2324-
import warnings
2325-
warnings.warn(
2326-
'The format_version method is deprecated -- the "version" '
2327-
'argument to ArgumentParser is no longer supported.',
2328-
DeprecationWarning)
2329-
formatter = self._get_formatter()
2330-
formatter.add_text(self.version)
2331-
return formatter.format_help()
2332-
23332306
def _get_formatter(self):
23342307
return self.formatter_class(prog=self.prog)
23352308

@@ -2346,14 +2319,6 @@ def print_help(self, file=None):
23462319
file = _sys.stdout
23472320
self._print_message(self.format_help(), file)
23482321

2349-
def print_version(self, file=None):
2350-
import warnings
2351-
warnings.warn(
2352-
'The print_version method is deprecated -- the "version" '
2353-
'argument to ArgumentParser is no longer supported.',
2354-
DeprecationWarning)
2355-
self._print_message(self.format_version(), file)
2356-
23572322
def _print_message(self, message, file=None):
23582323
if message:
23592324
if file is None:

‎Lib/test/test_argparse.py‎

Lines changed: 36 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,20 +1323,21 @@ class TestParserDefaultSuppress(ParserTestCase):
13231323
class TestParserDefault42(ParserTestCase):
13241324
"""Test actions with a parser-level default of 42"""
13251325

1326-
parser_signature = Sig(argument_default=42, version='1.0')
1326+
parser_signature = Sig(argument_default=42)
13271327
argument_signatures = [
1328+
Sig('--version', action='version', version='1.0'),
13281329
Sig('foo', nargs='?'),
13291330
Sig('bar', nargs='*'),
13301331
Sig('--baz', action='store_true'),
13311332
]
13321333
failures = ['-x']
13331334
successes = [
1334-
('', NS(foo=42, bar=42, baz=42)),
1335-
('a', NS(foo='a', bar=42, baz=42)),
1336-
('a b', NS(foo='a', bar=['b'], baz=42)),
1337-
('--baz', NS(foo=42, bar=42, baz=True)),
1338-
('a --baz', NS(foo='a', bar=42, baz=True)),
1339-
('--baz a b', NS(foo='a', bar=['b'], baz=True)),
1335+
('', NS(foo=42, bar=42, baz=42, version=42)),
1336+
('a', NS(foo='a', bar=42, baz=42, version=42)),
1337+
('a b', NS(foo='a', bar=['b'], baz=42, version=42)),
1338+
('--baz', NS(foo=42, bar=42, baz=True, version=42)),
1339+
('a --baz', NS(foo='a', bar=42, baz=True, version=42)),
1340+
('--baz a b', NS(foo='a', bar=['b'], baz=True, version=42)),
13401341
]
13411342

13421343

@@ -2896,10 +2897,9 @@ def test_print_file(self, tester):
28962897
parser_text = sfile.getvalue()
28972898
self._test(tester, parser_text)
28982899

2899-
# add tests for {format,print}_{usage,help,version}
2900+
# add tests for {format,print}_{usage,help}
29002901
for func_suffix, std_name in [('usage', 'stdout'),
2901-
('help', 'stdout'),
2902-
('version', 'stderr')]:
2902+
('help', 'stdout')]:
29032903
AddTests(cls, func_suffix, std_name)
29042904

29052905
bases = TestCase,
@@ -2910,8 +2910,9 @@ class TestHelpBiggerOptionals(HelpTestCase):
29102910
"""Make sure that argument help aligns when options are longer"""
29112911

29122912
parser_signature = Sig(prog='PROG', description='DESCRIPTION',
2913-
epilog='EPILOG', version='0.1')
2913+
epilog='EPILOG')
29142914
argument_signatures = [
2915+
Sig('-v', '--version', action='version', version='0.1'),
29152916
Sig('-x', action='store_true', help='X HELP'),
29162917
Sig('--y', help='Y HELP'),
29172918
Sig('foo', help='FOO HELP'),
@@ -2946,8 +2947,9 @@ class TestHelpBiggerOptionalGroups(HelpTestCase):
29462947
"""Make sure that argument help aligns when options are longer"""
29472948

29482949
parser_signature = Sig(prog='PROG', description='DESCRIPTION',
2949-
epilog='EPILOG', version='0.1')
2950+
epilog='EPILOG')
29502951
argument_signatures = [
2952+
Sig('-v', '--version', action='version', version='0.1'),
29512953
Sig('-x', action='store_true', help='X HELP'),
29522954
Sig('--y', help='Y HELP'),
29532955
Sig('foo', help='FOO HELP'),
@@ -3114,9 +3116,9 @@ class TestHelpWrappingShortNames(HelpTestCase):
31143116
class TestHelpWrappingLongNames(HelpTestCase):
31153117
"""Make sure that text after long names starts on the next line"""
31163118

3117-
parser_signature = Sig(usage='USAGE', description= 'D D' * 30,
3118-
version='V V'*30)
3119+
parser_signature = Sig(usage='USAGE', description= 'D D' * 30)
31193120
argument_signatures = [
3121+
Sig('-v', '--version', action='version', version='V V' * 30),
31203122
Sig('-x', metavar='X' * 25, help='XH XH' * 20),
31213123
Sig('y', metavar='y' * 25, help='YH YH' * 20),
31223124
]
@@ -3719,8 +3721,9 @@ class TestHelpNoHelpOptional(HelpTestCase):
37193721
class TestHelpVersionOptional(HelpTestCase):
37203722
"""Test that the --version argument can be suppressed help messages"""
37213723

3722-
parser_signature = Sig(prog='PROG', version='1.0')
3724+
parser_signature = Sig(prog='PROG')
37233725
argument_signatures = [
3726+
Sig('-v', '--version', action='version', version='1.0'),
37243727
Sig('--foo', help='foo help'),
37253728
Sig('spam', help='spam help'),
37263729
]
@@ -3953,8 +3956,8 @@ class TestHelpVersionAction(HelpTestCase):
39533956
class TestHelpSubparsersOrdering(HelpTestCase):
39543957
"""Test ordering of subcommands in help matches the code"""
39553958
parser_signature = Sig(prog='PROG',
3956-
description='display some subcommands',
3957-
version='0.1')
3959+
description='display some subcommands')
3960+
argument_signatures = [Sig('-v', '--version', action='version', version='0.1')]
39583961

39593962
subparsers_signatures = [Sig(name=name)
39603963
for name in ('a', 'b', 'c', 'd', 'e')]
@@ -3982,8 +3985,8 @@ class TestHelpSubparsersOrdering(HelpTestCase):
39823985
class TestHelpSubparsersWithHelpOrdering(HelpTestCase):
39833986
"""Test ordering of subcommands in help matches the code"""
39843987
parser_signature = Sig(prog='PROG',
3985-
description='display some subcommands',
3986-
version='0.1')
3988+
description='display some subcommands')
3989+
argument_signatures = [Sig('-v', '--version', action='version', version='0.1')]
39873990

39883991
subcommand_data = (('a', 'a subcommand help'),
39893992
('b', 'b subcommand help'),
@@ -4280,32 +4283,28 @@ def assertPrintHelpExit(self, parser, args_str):
42804283
parser.format_help(),
42814284
self._get_error(parser.parse_args, args_str.split()).stdout)
42824285

4283-
def assertPrintVersionExit(self, parser, args_str):
4284-
self.assertEqual(
4285-
parser.format_version(),
4286-
self._get_error(parser.parse_args, args_str.split()).stderr)
4287-
42884286
def assertArgumentParserError(self, parser, *args):
42894287
self.assertRaises(ArgumentParserError, parser.parse_args, args)
42904288

42914289
def test_version(self):
4292-
parser = ErrorRaisingArgumentParser(version='1.0')
4290+
parser = ErrorRaisingArgumentParser()
4291+
parser.add_argument('-v', '--version', action='version', version='1.0')
42934292
self.assertPrintHelpExit(parser, '-h')
42944293
self.assertPrintHelpExit(parser, '--help')
4295-
self.assertPrintVersionExit(parser, '-v')
4296-
self.assertPrintVersionExit(parser, '--version')
4294+
self.assertRaises(AttributeError, getattr, parser, 'format_version')
42974295

42984296
def test_version_format(self):
4299-
parser = ErrorRaisingArgumentParser(prog='PPP', version='%(prog)s 3.5')
4297+
parser = ErrorRaisingArgumentParser(prog='PPP')
4298+
parser.add_argument('-v', '--version', action='version', version='%(prog)s 3.5')
43004299
msg = self._get_error(parser.parse_args, ['-v']).stderr
43014300
self.assertEqual('PPP 3.5\n', msg)
43024301

43034302
def test_version_no_help(self):
4304-
parser = ErrorRaisingArgumentParser(add_help=False, version='1.0')
4303+
parser = ErrorRaisingArgumentParser(add_help=False)
4304+
parser.add_argument('-v', '--version', action='version', version='1.0')
43054305
self.assertArgumentParserError(parser, '-h')
43064306
self.assertArgumentParserError(parser, '--help')
4307-
self.assertPrintVersionExit(parser, '-v')
4308-
self.assertPrintVersionExit(parser, '--version')
4307+
self.assertRaises(AttributeError, getattr, parser, 'format_version')
43094308

43104309
def test_version_action(self):
43114310
parser = ErrorRaisingArgumentParser(prog='XXX')
@@ -4325,12 +4324,13 @@ def test_alternate_help_version(self):
43254324
parser.add_argument('-x', action='help')
43264325
parser.add_argument('-y', action='version')
43274326
self.assertPrintHelpExit(parser, '-x')
4328-
self.assertPrintVersionExit(parser, '-y')
43294327
self.assertArgumentParserError(parser, '-v')
43304328
self.assertArgumentParserError(parser, '--version')
4329+
self.assertRaises(AttributeError, getattr, parser, 'format_version')
43314330

43324331
def test_help_version_extra_arguments(self):
4333-
parser = ErrorRaisingArgumentParser(version='1.0')
4332+
parser = ErrorRaisingArgumentParser()
4333+
parser.add_argument('--version', action='version', version='1.0')
43344334
parser.add_argument('-x', action='store_true')
43354335
parser.add_argument('y')
43364336

@@ -4342,8 +4342,7 @@ def test_help_version_extra_arguments(self):
43424342
format = '%s %%s %s' % (prefix, suffix)
43434343
self.assertPrintHelpExit(parser, format % '-h')
43444344
self.assertPrintHelpExit(parser, format % '--help')
4345-
self.assertPrintVersionExit(parser, format % '-v')
4346-
self.assertPrintVersionExit(parser, format % '--version')
4345+
self.assertRaises(AttributeError, getattr, parser, 'format_version')
43474346

43484347

43494348
# ======================
@@ -4398,7 +4397,7 @@ def test_parser(self):
43984397
parser = argparse.ArgumentParser(prog='PROG')
43994398
string = (
44004399
"ArgumentParser(prog='PROG', usage=None, description=None, "
4401-
"version=None, formatter_class=%r, conflict_handler='error', "
4400+
"formatter_class=%r, conflict_handler='error', "
44024401
"add_help=True)" % argparse.HelpFormatter)
44034402
self.assertStringEqual(parser, string)
44044403

@@ -4760,13 +4759,7 @@ def test_all_exports_everything_but_modules(self):
47604759
self.assertEqual(sorted(items), sorted(argparse.__all__))
47614760

47624761
def test_main():
4763-
# silence warnings about version argument - these are expected
4764-
with support.check_warnings(
4765-
('The "version" argument to ArgumentParser is deprecated.',
4766-
DeprecationWarning),
4767-
('The (format|print)_version method is deprecated',
4768-
DeprecationWarning)):
4769-
support.run_unittest(__name__)
4762+
support.run_unittest(__name__)
47704763
# Remove global references to avoid looking like we have refleaks.
47714764
RFile.seen = {}
47724765
WFile.seen = set()

‎Misc/NEWS‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ Core and Builtins
2323
Library
2424
-------
2525

26+
- Issue #13248: Remove obsolete argument "version" of argparse.ArgumentParser.
27+
2628
- Issue #14814: implement more consistent ordering and sorting behaviour
2729
for ipaddress objects
2830

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL