diff --git a/numpydoc/numpydoc.py b/numpydoc/numpydoc.py index 93cd975d..438fc8cc 100644 --- a/numpydoc/numpydoc.py +++ b/numpydoc/numpydoc.py @@ -215,7 +215,10 @@ def _clean_text_signature(sig): if sig is None: return None start_pattern = re.compile(r"^[^(]*\(") - start, end = start_pattern.search(sig).span() + try: + start, end = start_pattern.search(sig).span() + except TypeError: + return None start_sig = sig[start:end] sig = sig[end:-1] sig = re.sub(r'^\$(self|module|type)(,\s|$)','' , sig, count=1) diff --git a/numpydoc/tests/test_numpydoc.py b/numpydoc/tests/test_numpydoc.py index 77e75400..c20b71d6 100644 --- a/numpydoc/tests/test_numpydoc.py +++ b/numpydoc/tests/test_numpydoc.py @@ -66,6 +66,7 @@ def test_mangle_docstrings(): def test_clean_text_signature(): assert _clean_text_signature(None) is None + assert _clean_text_signature({"a": 1}) is None # i.e. not a string assert _clean_text_signature('func($self)') == 'func()' assert (_clean_text_signature('func($self, *args, **kwargs)') == 'func(*args, **kwargs)')