Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion numpydoc/docscrape.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,12 +222,18 @@ def _read_sections(self):

def _parse_param_list(self, content, single_element_is_type=False):
content = dedent_lines(content)

r = Reader(content)
params = []
while not r.eof():
header = r.read().strip()
if " : " in header:
arg_name, arg_type = header.split(" : ", maxsplit=1)
arg_name, arg_type_w_whitespace = header.split(" : ", maxsplit=1)

# Strip extra spaces from backslash-continued parameter type
# lines. Continuation lines are indented, although we don't know by how
# much. So, we compact any run of 2+ whitespace.
arg_type = re.sub(r"\s{2,}", " ", arg_type_w_whitespace)
else:
Comment thread
stefanv marked this conversation as resolved.
# NOTE: param line with single element should never have a
# a " :" before the description line, so this should probably
Expand Down
14 changes: 14 additions & 0 deletions numpydoc/tests/test_docscrape.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,20 @@ def test_parameters(doc):
assert desc[0].startswith("The type and size")


def test_type_continuation():
doc = NumpyDocString("""
Parameters
----------
foo : a type that goes across \
multiple lines
This is the description line.
""")
arg, arg_type, desc = doc["Parameters"][0]
assert arg == "foo"
assert arg_type == "a type that goes across multiple lines"
assert desc[0] == "This is the description line."


def test_other_parameters(doc):
assert len(doc["Other Parameters"]) == 1
assert [n for n, _, _ in doc["Other Parameters"]] == ["spam"]
Expand Down
Loading