Nick Coghlan added the comment:
I believe Yury already figured out what I meant, but to make it entirely clear,
after the change, this example:
def foo(a, b): pass
foo_partial = functools.partial(foo, 'spam')
foo_partial2 = functools.partial(foo, a='spam')
Should lead to the following signature for both "foo_partial" and
"foo_partial2":
(b, *, a='spam')
That accurately indicates that "a" is now effectively a keyword only parameter
- the first supplied positional argument will map to "b", and attempting to
supply *two* positional arguments will fail.
Correctly handing *args may get a little interesting, but should be feasible.
----------
stage: -> needs patch
title: inspect: PartialSignature and PartialParameter classes ->
inspect.signature: inaccuracies for partial functions
type: enhancement -> behavior
versions: +Python 3.4
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue21117>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com