Skip to content

Commit b9c4c90

Browse files
committed
MAINT inspect.getfullargspec is deprecated in Py3.5
1 parent 7b17004 commit b9c4c90

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

numpydoc/docscrape.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -460,15 +460,17 @@ def __init__(self, func, role='func', doc=None, config={}):
460460
if not self['Signature'] and func is not None:
461461
func, func_name = self.get_func()
462462
try:
463-
# try to read signature
464-
if sys.version_info[0] >= 3:
465-
argspec = inspect.getfullargspec(func)
463+
if hasattr(inspect, 'signature'):
464+
signature = str(inspect.signature(func))
466465
else:
467-
argspec = inspect.getargspec(func)
468-
argspec = inspect.formatargspec(*argspec)
469-
argspec = argspec.replace('*', '\*')
470-
signature = '%s%s' % (func_name, argspec)
471-
except TypeError as e:
466+
# try to read signature, backward compat for older Python
467+
if sys.version_info[0] >= 3:
468+
argspec = inspect.getfullargspec(func)
469+
else:
470+
argspec = inspect.getargspec(func)
471+
signature = inspect.formatargspec(*argspec)
472+
signature = '%s%s' % (func_name, signature.replace('*', '\*'))
473+
except TypeError:
472474
signature = '%s()' % func_name
473475
self['Signature'] = signature
474476

numpydoc/tests/test_docscrape.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,12 @@ def test_escape_stars():
536536
signature = str(doc3).split('\n')[0]
537537
assert_equal(signature, 'my_signature(\*params, \*\*kwds)')
538538

539+
def my_func(a, b, **kwargs):
540+
pass
541+
542+
fdoc = FunctionDoc(func=my_func)
543+
assert_equal(fdoc['Signature'], 'my_func(a, b, \*\*kwargs)')
544+
539545
doc4 = NumpyDocString(
540546
"""a.conj()
541547

0 commit comments

Comments
 (0)