This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author anton-ryzhov
Recipients anton-ryzhov
Date 2017-03-20.09:19:12
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1490001553.25.0.894325859627.issue29858@psf.upfronthosting.co.za>
In-reply-to
Content
If we wrap function with bound method, which is also a wrapper around function, `inspect.signature` will not do `skip_bound_arg`.
It will use `inspect.unwrap` and pass by bound method from outer function to inner one.

Reproduce:
```
import functools, inspect


def decorator(func):
    @functools.wraps(func)
    def inner(*args):
        return func(*args)
    return inner


class Foo(object):
    @decorator
    def bar(self, testarg):
        pass


f = Foo()
baz = decorator(f.bar)
assert inspect.signature(baz) == inspect.signature(f.bar)
```
History
Date User Action Args
2017-03-20 09:19:13anton-ryzhovsetrecipients: + anton-ryzhov
2017-03-20 09:19:13anton-ryzhovsetmessageid: <1490001553.25.0.894325859627.issue29858@psf.upfronthosting.co.za>
2017-03-20 09:19:13anton-ryzhovlinkissue29858 messages
2017-03-20 09:19:12anton-ryzhovcreate