def __getstate__(self):
return {'_signature': self._signature, 'arguments': self.arguments}
+ def __repr__(self):
+ args = []
+ for arg, value in self.arguments.items():
+ args.append('{}={!r}'.format(arg, value))
+ return '<{} at {:#x} ({})>'.format(self.__class__.__name__,
+ id(self), ', '.join(args))
+
class Signature:
"""A Signature object represents the overall signature of a function.
ba_pickled = pickle.loads(pickle.dumps(ba, ver))
self.assertEqual(ba, ba_pickled)
+ def test_signature_bound_arguments_repr(self):
+ def foo(a, b, *, c:1={}, **kw) -> {42:'ham'}: pass
+ sig = inspect.signature(foo)
+ ba = sig.bind(20, 30, z={})
+ self.assertRegex(repr(ba),
+ r'<BoundArguments at 0x[a-fA-F0-9]+ \(a=20,.*\}\}\)>')
+
class TestSignaturePrivateHelpers(unittest.TestCase):
def test_signature_get_bound_param(self):
- Issue 24184: Add AsyncIterator and AsyncIterable ABCs to
collections.abc. Contributed by Yury Selivanov.
+- Issue 22547: Implement informative __repr__ for inspect.BoundArguments.
+ Contributed by Yury Selivanov.
+
Tests
-----