Replace _getargspec_py23() with inspect.getfullargspec().

This commit is contained in:
Andrey Rakhmatullin 2022-10-06 20:59:06 +06:00
parent 82d10f0914
commit fa58ab21e4
1 changed files with 2 additions and 19 deletions

View File

@ -180,23 +180,6 @@ def binary_is_text(data):
return all(c not in _BINARYCHARS for c in data)
def _getargspec_py23(func):
"""_getargspec_py23(function) -> named tuple ArgSpec(args, varargs, keywords,
defaults)
Was identical to inspect.getargspec() in python2, but uses
inspect.getfullargspec() for python3 behind the scenes to avoid
DeprecationWarning.
>>> def f(a, b=2, *ar, **kw):
... pass
>>> _getargspec_py23(f)
ArgSpec(args=['a', 'b'], varargs='ar', keywords='kw', defaults=(2,))
"""
return inspect.ArgSpec(*inspect.getfullargspec(func)[:4])
def get_func_args(func, stripself=False):
"""Return the argument name list of a callable"""
if inspect.isfunction(func):
@ -248,9 +231,9 @@ def get_spec(func):
"""
if inspect.isfunction(func) or inspect.ismethod(func):
spec = _getargspec_py23(func)
spec = inspect.getfullargspec(func)
elif hasattr(func, '__call__'):
spec = _getargspec_py23(func.__call__)
spec = inspect.getfullargspec(func.__call__)
else:
raise TypeError(f'{type(func)} is not callable')