Improve docstring formatting

This commit is contained in:
micbou
2018-11-11 11:32:33 +01:00
committed by Dave Halter
parent 3bdb941daa
commit 368bf7e58a
3 changed files with 15 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
import re
import textwrap import textwrap
from inspect import cleandoc from inspect import cleandoc
@@ -158,6 +159,7 @@ def get_call_signature(funcdef, width=72, call_string=None):
p = '(' + ''.join(param.get_code() for param in funcdef.get_params()).strip() + ')' p = '(' + ''.join(param.get_code() for param in funcdef.get_params()).strip() + ')'
else: else:
p = funcdef.children[2].get_code() p = funcdef.children[2].get_code()
p = re.sub(r'\s+', ' ', p)
if funcdef.annotation: if funcdef.annotation:
rtype = " ->" + funcdef.annotation.get_code() rtype = " ->" + funcdef.annotation.get_code()
else: else:
@@ -183,6 +185,8 @@ def get_doc_with_call_signature(scope_node):
doc = clean_scope_docstring(scope_node) doc = clean_scope_docstring(scope_node)
if call_signature is None: if call_signature is None:
return doc return doc
if not doc:
return call_signature
return '%s\n\n%s' % (call_signature, doc) return '%s\n\n%s' % (call_signature, doc)

View File

@@ -142,6 +142,16 @@ def test_docstring_keyword(Script):
assert 'assert' in completions[0].docstring() assert 'assert' in completions[0].docstring()
def test_docstring_params_formatting(Script):
defs = Script("""
def func(param1,
param2,
param3):
pass
func""").goto_definitions()
assert defs[0].docstring() == 'func(param1, param2, param3)'
# ---- Numpy Style Tests --- # ---- Numpy Style Tests ---
@pytest.mark.skipif(numpydoc_unavailable, @pytest.mark.skipif(numpydoc_unavailable,

View File

@@ -85,4 +85,4 @@ def test_get_call_signature(code, call_signature):
node = node.children[0] node = node.children[0]
assert parser_utils.get_call_signature(node) == call_signature assert parser_utils.get_call_signature(node) == call_signature
assert parser_utils.get_doc_with_call_signature(node) == (call_signature + '\n\n') assert parser_utils.get_doc_with_call_signature(node) == call_signature