]>
crepu.dev Git - config.git/blob - djavu-asus/emacs/elpy/rpc-venv/lib/python3.11/site-packages/black/report.py
2 Summarize Black runs to users.
4 from dataclasses
import dataclass
6 from pathlib
import Path
8 from click
import style
10 from black
.output
import err
, out
19 class NothingChanged(UserWarning):
20 """Raised when reformatted code is the same as source."""
25 """Provides a reformatting counter. Can be rendered with `str(report)`."""
33 failure_count
: int = 0
35 def done(self
, src
: Path
, changed
: Changed
) -> None:
36 """Increment the counter for successful reformatting. Write out a message."""
37 if changed
is Changed
.YES
:
38 reformatted
= "would reformat" if self
.check
or self
.diff
else "reformatted"
39 if self
.verbose
or not self
.quiet
:
40 out(f
"{reformatted} {src}")
41 self
.change_count
+= 1
44 if changed
is Changed
.NO
:
45 msg
= f
"{src} already well formatted, good job."
47 msg
= f
"{src} wasn't modified on disk since last run."
51 def failed(self
, src
: Path
, message
: str) -> None:
52 """Increment the counter for failed reformatting. Write out a message."""
53 err(f
"error: cannot format {src}: {message}")
54 self
.failure_count
+= 1
56 def path_ignored(self
, path
: Path
, message
: str) -> None:
58 out(f
"{path} ignored: {message}", bold
=False)
61 def return_code(self
) -> int:
62 """Return the exit code that the app should use.
64 This considers the current state of changed files and failures:
65 - if there were any failures, return 123;
66 - if any files were changed and --check is being used, return 1;
69 # According to http://tldp.org/LDP/abs/html/exitcodes.html starting with
70 # 126 we have special return codes reserved by the shell.
71 if self
.failure_count
:
74 elif self
.change_count
and self
.check
:
79 def __str__(self
) -> str:
80 """Render a color report of the current state.
82 Use `click.unstyle` to remove colors.
84 if self
.check
or self
.diff
:
85 reformatted
= "would be reformatted"
86 unchanged
= "would be left unchanged"
87 failed
= "would fail to reformat"
89 reformatted
= "reformatted"
90 unchanged
= "left unchanged"
91 failed
= "failed to reformat"
94 s
= "s" if self
.change_count
> 1 else ""
96 style(f
"{self.change_count} file{s} ", bold
=True, fg
="blue")
97 + style(f
"{reformatted}", bold
=True)
101 s
= "s" if self
.same_count
> 1 else ""
102 report
.append(style(f
"{self.same_count} file{s} ", fg
="blue") + unchanged
)
103 if self
.failure_count
:
104 s
= "s" if self
.failure_count
> 1 else ""
105 report
.append(style(f
"{self.failure_count} file{s} {failed}", fg
="red"))
106 return ", ".join(report
) + "."