Use instead of a in Issue #7868

Use `collections.Counter` instead of a `dict` in `terminal.py` Issue #7868
This commit is contained in:
Tanvi Mehta 2020-10-07 21:51:28 -07:00
parent 5acc55e838
commit 43b1eb3c9e
1 changed files with 3 additions and 8 deletions

View File

@ -8,6 +8,7 @@ import inspect
import platform import platform
import sys import sys
import warnings import warnings
from collections import Counter
from functools import partial from functools import partial
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
@ -754,10 +755,7 @@ class TerminalReporter:
# because later versions are going to get rid of them anyway. # because later versions are going to get rid of them anyway.
if self.config.option.verbose < 0: if self.config.option.verbose < 0:
if self.config.option.verbose < -1: if self.config.option.verbose < -1:
counts: Dict[str, int] = {} counts = Counter(item.nodeid.split("::", 1)[0] for item in items)
for item in items:
name = item.nodeid.split("::", 1)[0]
counts[name] = counts.get(name, 0) + 1
for name, count in sorted(counts.items()): for name, count in sorted(counts.items()):
self._tw.line("%s: %d" % (name, count)) self._tw.line("%s: %d" % (name, count))
else: else:
@ -922,10 +920,7 @@ class TerminalReporter:
if len(locations) < 10: if len(locations) < 10:
return "\n".join(map(str, locations)) return "\n".join(map(str, locations))
counts_by_filename: Dict[str, int] = {} counts_by_filename = Counter(str(loc).split("::", 1)[0] for loc in locations)
for loc in locations:
key = str(loc).split("::", 1)[0]
counts_by_filename[key] = counts_by_filename.get(key, 0) + 1
return "\n".join( return "\n".join(
"{}: {} warning{}".format(k, v, "s" if v > 1 else "") "{}: {} warning{}".format(k, v, "s" if v > 1 else "")
for k, v in counts_by_filename.items() for k, v in counts_by_filename.items()