diff options
author | Martin Panter <vadmium+py@gmail.com> | 2016-03-31 08:25:59 +0000 |
---|---|---|
committer | Martin Panter <vadmium+py@gmail.com> | 2016-03-31 08:25:59 +0000 |
commit | c7388039848c599e930620c8f544f18b1ae7187d (patch) | |
tree | 0569f16bc4d086576e4a845bb14792916a400801 /Lib/argparse.py | |
parent | 750bbb301975bc327fe5f4fcdf0cc9e1953a56d5 (diff) | |
parent | 3d50f38849cb50ac6366dd38c93d21631e4fc844 (diff) | |
download | cpython-c7388039848c599e930620c8f544f18b1ae7187d.tar.gz |
Issue #22854: Merge UnsupportedOperation fixes from 3.5
Diffstat (limited to 'Lib/argparse.py')
-rw-r--r-- | Lib/argparse.py | 10 |
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() |