Issue #24360: Improve __repr__ of argparse.Namespace() for invalid identifiers.

Patch by Matthias Bussonnier.
This commit is contained in:
Berker Peksag 2015-07-29 23:51:47 +03:00
parent ada5578f95
commit 76b1714be8
3 changed files with 25 additions and 1 deletions

View file

@ -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):