mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
inspect: Fix getfullargspec to support builtin module-level functions. Issue #20711
This commit is contained in:
parent
b226026299
commit
8c185ee12e
2 changed files with 16 additions and 2 deletions
|
@ -1827,9 +1827,16 @@ def _signature_fromstr(cls, obj, s, skip_bound_arg=True):
|
|||
p(f.args.kwarg, empty)
|
||||
|
||||
if self_parameter is not None:
|
||||
# Possibly strip the bound argument:
|
||||
# - We *always* strip first bound argument if
|
||||
# it is a module.
|
||||
# - We don't strip first bound argument if
|
||||
# skip_bound_arg is False.
|
||||
assert parameters
|
||||
if getattr(obj, '__self__', None) and skip_bound_arg:
|
||||
# strip off self, it's already been bound
|
||||
_self = getattr(obj, '__self__', None)
|
||||
self_isbound = _self is not None
|
||||
self_ismodule = ismodule(_self)
|
||||
if self_isbound and (self_ismodule or skip_bound_arg):
|
||||
parameters.pop(0)
|
||||
else:
|
||||
# for builtins, self parameter is always positional-only!
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue