[New-bugs-announce] [issue29858] inspect.signature includes bound argument for wrappers around decorated bound methods

anton-ryzhov report at bugs.python.org
Mon Mar 20 05:19:13 EDT 2017


New submission from anton-ryzhov:

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)
```

----------
components: Library (Lib)
messages: 289879
nosy: anton-ryzhov
priority: normal
severity: normal
status: open
title: inspect.signature includes bound argument for wrappers around decorated bound methods
versions: Python 3.3, Python 3.4, Python 3.5, Python 3.6, Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue29858>
_______________________________________


More information about the New-bugs-announce mailing list