aboutsummaryrefslogtreecommitdiff
path: root/pylint/reporters/ureports/text_writer.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/reporters/ureports/text_writer.py')
-rw-r--r--pylint/reporters/ureports/text_writer.py44
1 files changed, 30 insertions, 14 deletions
diff --git a/pylint/reporters/ureports/text_writer.py b/pylint/reporters/ureports/text_writer.py
index a48d73aac..a00392bfe 100644
--- a/pylint/reporters/ureports/text_writer.py
+++ b/pylint/reporters/ureports/text_writer.py
@@ -11,7 +11,20 @@
"""Text formatting drivers for ureports"""
-from pylint.reporters.ureports import BaseWriter
+from typing import TYPE_CHECKING, List
+
+from pylint.reporters.ureports.base_writer import BaseWriter
+
+if TYPE_CHECKING:
+ from pylint.reporters.ureports.nodes import (
+ EvaluationSection,
+ Paragraph,
+ Section,
+ Table,
+ Text,
+ Title,
+ VerbatimText,
+ )
TITLE_UNDERLINES = ["", "=", "-", "`", ".", "~", "^"]
BULLETS = ["*", "-"]
@@ -22,11 +35,11 @@ class TextWriter(BaseWriter):
(ReStructured inspiration but not totally handled yet)
"""
- def begin_format(self):
- super().begin_format()
+ def __init__(self):
+ super().__init__()
self.list_level = 0
- def visit_section(self, layout):
+ def visit_section(self, layout: "Section") -> None:
"""display a section as text"""
self.section += 1
self.writeln()
@@ -34,14 +47,14 @@ class TextWriter(BaseWriter):
self.section -= 1
self.writeln()
- def visit_evaluationsection(self, layout):
+ def visit_evaluationsection(self, layout: "EvaluationSection") -> None:
"""Display an evaluation section as a text."""
self.section += 1
self.format_children(layout)
self.section -= 1
self.writeln()
- def visit_title(self, layout):
+ def visit_title(self, layout: "Title") -> None:
title = "".join(list(self.compute_content(layout)))
self.writeln(title)
try:
@@ -49,12 +62,12 @@ class TextWriter(BaseWriter):
except IndexError:
print("FIXME TITLE TOO DEEP. TURNING TITLE INTO TEXT")
- def visit_paragraph(self, layout):
+ def visit_paragraph(self, layout: "Paragraph") -> None:
"""enter a paragraph"""
self.format_children(layout)
self.writeln()
- def visit_table(self, layout):
+ def visit_table(self, layout: "Table") -> None:
"""display a table as text"""
table_content = self.get_table_content(layout)
# get columns width
@@ -65,33 +78,36 @@ class TextWriter(BaseWriter):
self.default_table(layout, table_content, cols_width)
self.writeln()
- def default_table(self, layout, table_content, cols_width):
+ def default_table(
+ self, layout: "Table", table_content: List[List[str]], cols_width: List[int]
+ ) -> None:
"""format a table"""
cols_width = [size + 1 for size in cols_width]
format_strings = " ".join(["%%-%ss"] * len(cols_width))
- format_strings = format_strings % tuple(cols_width)
- format_strings = format_strings.split(" ")
+ format_strings %= tuple(cols_width)
+
table_linesep = "\n+" + "+".join("-" * w for w in cols_width) + "+\n"
headsep = "\n+" + "+".join("=" * w for w in cols_width) + "+\n"
self.write(table_linesep)
+ split_strings = format_strings.split(" ")
for index, line in enumerate(table_content):
self.write("|")
for line_index, at_index in enumerate(line):
- self.write(format_strings[line_index] % at_index)
+ self.write(split_strings[line_index] % at_index)
self.write("|")
if index == 0 and layout.rheaders:
self.write(headsep)
else:
self.write(table_linesep)
- def visit_verbatimtext(self, layout):
+ def visit_verbatimtext(self, layout: "VerbatimText") -> None:
"""display a verbatim layout as text (so difficult ;)"""
self.writeln("::\n")
for line in layout.data.splitlines():
self.writeln(" " + line)
self.writeln()
- def visit_text(self, layout):
+ def visit_text(self, layout: "Text") -> None:
"""add some text"""
self.write(f"{layout.data}")