diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2015-07-29 20:51:47 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2015-07-29 20:51:47 (GMT) |
commit | 76b1714be84ab6e73b9b0716cbb233f044318516 (patch) | |
tree | 08a691da7726a3039f641197a4b190c73018633f /Lib/argparse.py | |
parent | ada5578f95bcd4b402e0e3111bb65cb70ee0daae (diff) | |
download | cpython-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.py | 8 |
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): |