summaryrefslogtreecommitdiff
path: root/Lib/argparse.py
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-03-31 08:25:59 +0000
committerMartin Panter <vadmium+py@gmail.com>2016-03-31 08:25:59 +0000
commitc7388039848c599e930620c8f544f18b1ae7187d (patch)
tree0569f16bc4d086576e4a845bb14792916a400801 /Lib/argparse.py
parent750bbb301975bc327fe5f4fcdf0cc9e1953a56d5 (diff)
parent3d50f38849cb50ac6366dd38c93d21631e4fc844 (diff)
downloadcpython-c7388039848c599e930620c8f544f18b1ae7187d.tar.gz
Issue #22854: Merge UnsupportedOperation fixes from 3.5
Diffstat (limited to 'Lib/argparse.py')
-rw-r--r--Lib/argparse.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/Lib/argparse.py b/Lib/argparse.py
index 9a067196da..209b4e99c1 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -118,10 +118,16 @@ class _AttributeHolder(object):
def __repr__(self):
type_name = type(self).__name__
arg_strings = []
+ star_args = {}
for arg in self._get_args():
arg_strings.append(repr(arg))
for name, value in self._get_kwargs():
- arg_strings.append('%s=%r' % (name, value))
+ if name.isidentifier():
+ arg_strings.append('%s=%r' % (name, value))
+ else:
+ star_args[name] = value
+ if star_args:
+ arg_strings.append('**%s' % repr(star_args))
return '%s(%s)' % (type_name, ', '.join(arg_strings))
def _get_kwargs(self):
@@ -204,8 +210,6 @@ class HelpFormatter(object):
if self.parent is not None:
self.formatter._indent()
join = self.formatter._join_parts
- for func, args in self.items:
- func(*args)
item_help = join([func(*args) for func, args in self.items])
if self.parent is not None:
self.formatter._dedent()