summaryrefslogtreecommitdiffstats
path: root/Lib/argparse.py
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2015-07-29 20:51:47 (GMT)
committerBerker Peksag <berker.peksag@gmail.com>2015-07-29 20:51:47 (GMT)
commit76b1714be84ab6e73b9b0716cbb233f044318516 (patch)
tree08a691da7726a3039f641197a4b190c73018633f /Lib/argparse.py
parentada5578f95bcd4b402e0e3111bb65cb70ee0daae (diff)
downloadcpython-76b1714be84ab6e73b9b0716cbb233f044318516.zip
cpython-76b1714be84ab6e73b9b0716cbb233f044318516.tar.gz
cpython-76b1714be84ab6e73b9b0716cbb233f044318516.tar.bz2
Issue #24360: Improve __repr__ of argparse.Namespace() for invalid identifiers.
Patch by Matthias Bussonnier.
Diffstat (limited to 'Lib/argparse.py')
-rw-r--r--Lib/argparse.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/Lib/argparse.py b/Lib/argparse.py
index 9a06719..cc53841 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):