MCPcopy
hub / github.com/psf/black / Report

Class Report

src/black/report.py:25–107  ·  view source on GitHub ↗

Provides a reformatting counter. Can be rendered with `str(report)`.

Source from the content-addressed store, hash-verified

23
24@dataclass
25class Report:
26 """Provides a reformatting counter. Can be rendered with `str(report)`."""
27
28 check: bool = False
29 diff: bool = False
30 quiet: bool = False
31 verbose: bool = False
32 change_count: int = 0
33 same_count: int = 0
34 failure_count: int = 0
35
36 def done(self, src: Path, changed: Changed) -> None:
37 """Increment the counter for successful reformatting. Write out a message."""
38 if changed is Changed.YES:
39 reformatted = "would reformat" if self.check or self.diff else "reformatted"
40 if self.verbose or not self.quiet:
41 out(f"{reformatted} {src}")
42 self.change_count += 1
43 else:
44 if self.verbose:
45 if changed is Changed.NO:
46 msg = f"{src} already well formatted, good job."
47 else:
48 msg = f"{src} wasn't modified on disk since last run."
49 out(msg, bold=False)
50 self.same_count += 1
51
52 def failed(self, src: Path, message: str) -> None:
53 """Increment the counter for failed reformatting. Write out a message."""
54 err(f"error: cannot format {src}: {message}")
55 self.failure_count += 1
56
57 def path_ignored(self, path: Path, message: str) -> None:
58 if self.verbose:
59 out(f"{path} ignored: {message}", bold=False)
60
61 @property
62 def return_code(self) -> int:
63 """Return the exit code that the app should use.
64
65 This considers the current state of changed files and failures:
66 - if there were any failures, return 123;
67 - if any files were changed and --check is being used, return 1;
68 - otherwise return 0.
69 """
70 # According to http://tldp.org/LDP/abs/html/exitcodes.html starting with
71 # 126 we have special return codes reserved by the shell.
72 if self.failure_count:
73 return 123
74
75 elif self.change_count and self.check:
76 return 1
77
78 return 0
79
80 def __str__(self) -> str:
81 """Render a color report of the current state.
82

Callers 4

mainFunction · 0.90
test_report_verboseMethod · 0.90
test_report_quietMethod · 0.90
runFunction · 0.90

Calls

no outgoing calls

Tested by 3

test_report_verboseMethod · 0.72
test_report_quietMethod · 0.72
runFunction · 0.72