Skip to content

Commit 74931d3

Browse files
committed
style: tweak report.py
1 parent 84ca235 commit 74931d3

File tree

1 file changed

+52
-33
lines changed

1 file changed

+52
-33
lines changed

coverage/report.py

Lines changed: 52 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from typing import IO, TYPE_CHECKING, Any
1111

1212
from coverage.exceptions import ConfigError, NoDataError
13-
from coverage.misc import human_sorted_items
13+
from coverage.misc import human_sorted_items, plural
1414
from coverage.plugin import FileReporter
1515
from coverage.report_core import get_analysis_to_report
1616
from coverage.results import Analysis, Numbers
@@ -31,7 +31,7 @@ def __init__(self, coverage: Coverage) -> None:
3131
self.output_format = self.config.format or "text"
3232
if self.output_format not in {"text", "markdown", "total"}:
3333
raise ConfigError(f"Unknown report format choice: {self.output_format!r}")
34-
self.fr_analysis: list[tuple[FileReporter, Analysis]] = []
34+
self.fr_analyses: list[tuple[FileReporter, Analysis]] = []
3535
self.skipped_count = 0
3636
self.empty_count = 0
3737
self.total = Numbers(precision=self.config.precision)
@@ -46,7 +46,7 @@ def write_items(self, items: Iterable[str]) -> None:
4646
"""Write a list of strings, joined together."""
4747
self.write("".join(items))
4848

49-
def _report_text(
49+
def report_text(
5050
self,
5151
header: list[str],
5252
lines_values: list[list[Any]],
@@ -82,29 +82,36 @@ def _report_text(
8282
self.write(header_str)
8383
self.write(rule)
8484

85-
formats.update(dict(Cover="{:>{n}}%"), Missing=" {:9}")
85+
# Write the data lines
86+
formats.update(
87+
dict(
88+
Cover="{:>{n}}%",
89+
Missing=" {:9}",
90+
)
91+
)
8692
for values in lines_values:
87-
# build string with line values
88-
line_items = [
89-
formats[item].format(str(value), name_len=max_name, n=max_n - 1)
90-
for item, value in zip(header, values)
91-
]
92-
self.write_items(line_items)
93+
self.write_items(
94+
(
95+
formats[item].format(str(value), name_len=max_name, n=max_n - 1)
96+
for item, value in zip(header, values)
97+
)
98+
)
9399

94100
# Write a TOTAL line
95101
if lines_values:
96102
self.write(rule)
97103

98-
line_items = [
99-
formats[item].format(str(value), name_len=max_name, n=max_n - 1)
100-
for item, value in zip(header, total_line)
101-
]
102-
self.write_items(line_items)
104+
self.write_items(
105+
(
106+
formats[item].format(str(value), name_len=max_name, n=max_n - 1)
107+
for item, value in zip(header, total_line)
108+
)
109+
)
103110

104111
for end_line in end_lines:
105112
self.write(end_line)
106113

107-
def _report_markdown(
114+
def report_markdown(
108115
self,
109116
header: list[str],
110117
lines_values: list[list[Any]],
@@ -143,17 +150,29 @@ def _report_markdown(
143150
self.write(header_str)
144151
self.write(rule_str)
145152

153+
# Write the data lines
146154
for values in lines_values:
147-
# build string with line values
148-
formats.update(dict(Cover="{:>{n}}% |"))
149-
line_items = [
150-
formats[item].format(str(value).replace("_", "\\_"), name_len=max_name, n=max_n - 1)
151-
for item, value in zip(header, values)
152-
]
153-
self.write_items(line_items)
155+
formats.update(
156+
dict(
157+
Cover="{:>{n}}% |",
158+
)
159+
)
160+
self.write_items(
161+
(
162+
formats[item].format(
163+
str(value).replace("_", "\\_"), name_len=max_name, n=max_n - 1
164+
)
165+
for item, value in zip(header, values)
166+
)
167+
)
154168

155169
# Write the TOTAL line
156-
formats.update(dict(Name="|{:>{name_len}} |", Cover="{:>{n}} |"))
170+
formats.update(
171+
dict(
172+
Name="|{:>{name_len}} |",
173+
Cover="{:>{n}} |",
174+
),
175+
)
157176
total_line_items: list[str] = []
158177
for item, value in zip(header, total_line):
159178
if value == "":
@@ -164,6 +183,7 @@ def _report_markdown(
164183
insert = f" **{value}**"
165184
total_line_items += formats[item].format(insert, name_len=max_name, n=max_n)
166185
self.write_items(total_line_items)
186+
167187
for end_line in end_lines:
168188
self.write(end_line)
169189

@@ -206,9 +226,8 @@ def tabular_report(self) -> None:
206226
# `lines_values` is list of lists of sortable values.
207227
lines_values = []
208228

209-
for fr, analysis in self.fr_analysis:
229+
for fr, analysis in self.fr_analyses:
210230
nums = analysis.numbers
211-
212231
args = [fr.relative_filename(), nums.n_statements, nums.n_missing]
213232
if self.branches:
214233
args += [nums.n_branches, nums.n_partial_branches]
@@ -248,18 +267,18 @@ def tabular_report(self) -> None:
248267
# Create other final lines.
249268
end_lines = []
250269
if self.config.skip_covered and self.skipped_count:
251-
file_suffix = "s" if self.skipped_count > 1 else ""
270+
files = plural(self.skipped_count, "file")
252271
end_lines.append(
253-
f"\n{self.skipped_count} file{file_suffix} skipped due to complete coverage.",
272+
f"\n{self.skipped_count} {files} skipped due to complete coverage.",
254273
)
255274
if self.config.skip_empty and self.empty_count:
256-
file_suffix = "s" if self.empty_count > 1 else ""
257-
end_lines.append(f"\n{self.empty_count} empty file{file_suffix} skipped.")
275+
files = plural(self.empty_count, "file")
276+
end_lines.append(f"\n{self.empty_count} empty {files} skipped.")
258277

259278
if self.output_format == "markdown":
260-
formatter = self._report_markdown
279+
formatter = self.report_markdown
261280
else:
262-
formatter = self._report_text
281+
formatter = self.report_text
263282
formatter(header, lines_values, total_line, end_lines)
264283

265284
def report_one_file(self, fr: FileReporter, analysis: Analysis) -> None:
@@ -276,4 +295,4 @@ def report_one_file(self, fr: FileReporter, analysis: Analysis) -> None:
276295
# Don't report on empty files.
277296
self.empty_count += 1
278297
else:
279-
self.fr_analysis.append((fr, analysis))
298+
self.fr_analyses.append((fr, analysis))

0 commit comments

Comments
 (0)