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 <[email protected]>
<http://bugs.python.org/issue29858>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com