[Python-checkins] cpython: inspect.signature: Improve repr of Signature and Parameter. Closes #20378

yury.selivanov python-checkins at python.org
Thu Mar 27 17:42:22 CET 2014


http://hg.python.org/cpython/rev/3f9a81297b39
changeset: 89996:3f9a81297b39
user: Yury Selivanov <yselivanov at sprymix.com>
date: Thu Mar 27 12:41:53 2014 -0400
summary:
 inspect.signature: Improve repr of Signature and Parameter. Closes #20378
files:
 Lib/inspect.py | 8 ++++++--
 Lib/test/test_inspect.py | 4 ++++
 Misc/NEWS | 2 ++
 3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/Lib/inspect.py b/Lib/inspect.py
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -2192,8 +2192,8 @@
 return formatted
 
 def __repr__(self):
- return '<{} at {:#x} {!r}>'.format(self.__class__.__name__,
- id(self), self.name)
+ return '<{} at {:#x} "{}">'.format(self.__class__.__name__,
+ id(self), self)
 
 def __eq__(self, other):
 # NB: We deliberately do not compare '_partial_kwarg' attributes
@@ -2698,6 +2698,10 @@
 def __setstate__(self, state):
 self._return_annotation = state['_return_annotation']
 
+ def __repr__(self):
+ return '<{} at {:#x} "{}">'.format(self.__class__.__name__,
+ id(self), self)
+
 def __str__(self):
 result = []
 render_pos_only_separator = False
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -1667,6 +1667,9 @@
 with self.assertRaisesRegex(ValueError, 'follows default argument'):
 S((pkd, pk))
 
+ self.assertTrue(repr(sig).startswith('<Signature'))
+ self.assertTrue('"(po, pk' in repr(sig))
+
 def test_signature_object_pickle(self):
 def foo(a, b, *, c:1={}, **kw) -> {42:'ham'}: pass
 foo_partial = functools.partial(foo, a=1)
@@ -2575,6 +2578,7 @@
 p.replace(kind=inspect.Parameter.VAR_POSITIONAL)
 
 self.assertTrue(repr(p).startswith('<Parameter'))
+ self.assertTrue('"a=42"' in repr(p))
 
 def test_signature_parameter_equality(self):
 P = inspect.Parameter
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -111,6 +111,8 @@
 
 - Issue #17373: Add inspect.Signature.from_callable method.
 
+- Issue #20378: Improve repr of inspect.Signature and inspect.Parameter.
+
 Documentation
 -------------
 
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /