Skip to content

Commit 1229b66

Browse files
committed
Simplify desc_parameterlist into single class
1 parent d3ec233 commit 1229b66

File tree

5 files changed

+10
-25
lines changed

5 files changed

+10
-25
lines changed

sphinx/addnodes.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -245,14 +245,9 @@ class desc_parameterlist(nodes.Part, nodes.Inline, nodes.FixedTextElement):
245245
"""Node for a general parameter list."""
246246
child_text_separator = ', '
247247

248-
def astext(self):
249-
return f'({super().astext()})'
250-
251-
252-
class desc_multiline_parameterlist(nodes.Part, nodes.Inline, nodes.FixedTextElement):
253-
"""Node for a multiline parameter list.
254-
"""
255-
child_text_separator = ', '
248+
def __init__(self, *args: Any, multiline: bool = False, **kwargs: Any) -> None:
249+
super().__init__(*args, **kwargs)
250+
self.multiline = multiline
256251

257252
def astext(self):
258253
return f'({super().astext()})'

sphinx/domains/c.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ def describe_signature(self, signode: TextElement, mode: str,
722722
multiline = self.multiline
723723
# only use the desc_parameterlist for the outer list, not for inner lists
724724
if mode == 'lastIsName':
725-
paramlist = addnodes.desc_multiline_parameterlist() if multiline else addnodes.desc_parameterlist()
725+
paramlist = addnodes.desc_parameterlist(multiline=multiline)
726726
for arg in self.args:
727727
param_node = addnodes.desc_content() if multiline else paramlist
728728
param = addnodes.desc_parameter('', '', noemph=True)

sphinx/domains/cpp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2133,7 +2133,7 @@ def describe_signature(self, signode: TextElement, mode: str,
21332133
multiline = self.multiline
21342134
# only use the desc_parameterlist for the outer list, not for inner lists
21352135
if mode == 'lastIsName':
2136-
paramlist = addnodes.desc_multiline_parameterlist() if multiline else addnodes.desc_parameterlist()
2136+
paramlist = addnodes.desc_parameterlist(multiline=multiline)
21372137
for arg in self.args:
21382138
param_node = addnodes.desc_content() if multiline else paramlist
21392139
param = addnodes.desc_parameter('', '', noemph=True)

sphinx/domains/python.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def _parse_arglist(
254254
arglist: str, env: BuildEnvironment | None = None, multiline=False
255255
) -> addnodes.desc_parameterlist:
256256
"""Parse a list of arguments using AST parser"""
257-
params = addnodes.desc_multiline_parameterlist(arglist) if multiline else addnodes.desc_parameterlist(arglist)
257+
params = addnodes.desc_parameterlist(multiline=multiline)
258258
sig = signature_from_str('(%s)' % arglist)
259259
last_kind = None
260260
for param in sig.parameters.values():

sphinx/writers/html5.py

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -157,22 +157,12 @@ def visit_desc_parameterlist(self, node: Element) -> None:
157157
self.required_params_left = sum([isinstance(c, addnodes.desc_parameter)
158158
for c in node.children])
159159
self.param_separator = node.child_text_separator
160+
if node.multiline:
161+
self.body.append(self.starttag(node, 'dl'))
160162

161163
def depart_desc_parameterlist(self, node: Element) -> None:
162-
self.body.append('<span class="sig-paren">)</span>')
163-
164-
def visit_desc_multiline_parameterlist(self, node: Element) -> None:
165-
self.body.append('<span class="sig-paren">(</span>')
166-
self.first_param = 1
167-
self.optional_param_level = 0
168-
# How many required parameters are left.
169-
self.required_params_left = sum([isinstance(c, addnodes.desc_parameter)
170-
for c in node.children])
171-
self.param_separator = node.child_text_separator
172-
self.body.append(self.starttag(node, 'dl'))
173-
174-
def depart_desc_multiline_parameterlist(self, node: Element) -> None:
175-
self.body.append('</dl>\n\n')
164+
if node.multiline:
165+
self.body.append('</dl>\n\n')
176166
self.body.append('<span class="sig-paren">)</span>')
177167

178168
# If required parameters are still to come, then put the comma after

0 commit comments

Comments
 (0)