Skip to content

Commit 7f4d62b

Browse files
committed
Make _docs_dedent use doc_node
1 parent 17387a5 commit 7f4d62b

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

astroid/nodes/as_string.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323
# For details: https://github.com/PyCQA/astroid/blob/main/LICENSE
2424

2525
"""This module renders Astroid nodes as string"""
26-
from typing import TYPE_CHECKING, List
26+
from typing import TYPE_CHECKING, List, Optional
2727

2828
if TYPE_CHECKING:
29+
from astroid.nodes import Const
2930
from astroid.nodes.node_classes import (
3031
Match,
3132
MatchAs,
@@ -57,9 +58,14 @@ def __call__(self, node):
5758
"""Makes this visitor behave as a simple function"""
5859
return node.accept(self).replace(DOC_NEWLINE, "\n")
5960

60-
def _docs_dedent(self, doc):
61+
def _docs_dedent(self, doc_node: Optional["Const"]) -> str:
6162
"""Stop newlines in docs being indented by self._stmt_list"""
62-
return '\n{}"""{}"""'.format(self.indent, doc.replace("\n", DOC_NEWLINE))
63+
if not doc_node:
64+
return ""
65+
66+
return '\n{}"""{}"""'.format(
67+
self.indent, doc_node.value.replace("\n", DOC_NEWLINE)
68+
)
6369

6470
def _stmt_list(self, stmts, indent=True):
6571
"""return a list of nodes to string"""
@@ -183,7 +189,7 @@ def visit_classdef(self, node):
183189
args.append("metaclass=" + node._metaclass.accept(self))
184190
args += [n.accept(self) for n in node.keywords]
185191
args = f"({', '.join(args)})" if args else ""
186-
docs = self._docs_dedent(node.doc) if node.doc else ""
192+
docs = self._docs_dedent(node.doc_node)
187193
return "\n\n{}class {}{}:{}\n{}\n".format(
188194
decorate, node.name, args, docs, self._stmt_list(node.body)
189195
)
@@ -328,7 +334,7 @@ def visit_formattedvalue(self, node):
328334
def handle_functiondef(self, node, keyword):
329335
"""return a (possibly async) function definition node as string"""
330336
decorate = node.decorators.accept(self) if node.decorators else ""
331-
docs = self._docs_dedent(node.doc) if node.doc else ""
337+
docs = self._docs_dedent(node.doc_node)
332338
trailer = ":"
333339
if node.returns:
334340
return_annotation = " -> " + node.returns.as_string()
@@ -417,7 +423,7 @@ def visit_listcomp(self, node):
417423

418424
def visit_module(self, node):
419425
"""return an astroid.Module node as string"""
420-
docs = f'"""{node.doc}"""\n\n' if node.doc else ""
426+
docs = f'"""{node.doc_node.value}"""\n\n' if node.doc_node else ""
421427
return docs + "\n".join(n.accept(self) for n in node.body) + "\n\n"
422428

423429
def visit_name(self, node):

0 commit comments

Comments
 (0)