Merge pull request #2126 from dean0x7d/fix_numpy_kwargs

[Napoleon] Fix NumPy handling of *args and **kwargs parameters
This commit is contained in:
Rob Ruana
2015-11-20 19:03:49 -08:00
2 changed files with 12 additions and 6 deletions

View File

@@ -212,10 +212,7 @@ class GoogleDocstring(UnicodeMixin):
_name = match.group(1)
_type = match.group(2)
if _name[:2] == '**':
_name = r'\*\*'+_name[2:]
elif _name[:1] == '*':
_name = r'\*'+_name[1:]
_name = self._escape_args_and_kwargs(_name)
if prefer_type and not _type:
_type, _name = _name, _type
@@ -297,6 +294,14 @@ class GoogleDocstring(UnicodeMixin):
min_indent = self._get_min_indent(lines)
return [line[min_indent:] for line in lines]
def _escape_args_and_kwargs(self, name):
if name[:2] == '**':
return r'\*\*' + name[2:]
elif name[:1] == '*':
return r'\*' + name[1:]
else:
return name
def _format_admonition(self, admonition, lines):
lines = self._strip_empty(lines)
if len(lines) == 1:
@@ -771,6 +776,7 @@ class NumpyDocstring(GoogleDocstring):
else:
_name, _type = line, ''
_name, _type = _name.strip(), _type.strip()
_name = self._escape_args_and_kwargs(_name)
if prefer_type and not _type:
_type, _name = _name, _type
indent = self._get_indent(line)

View File

@@ -732,8 +732,8 @@ class NumpyDocstringTest(BaseDocstringTest):
Single line summary
:Parameters: * **arg1** (*str*) -- Extended description of arg1
* ***args** -- Variable length argument list.
* ****kwargs** -- Arbitrary keyword arguments.
* **\\*args** -- Variable length argument list.
* **\\*\\*kwargs** -- Arbitrary keyword arguments.
"""
), (
"""