Integrate verbose logging with get_sources (#3749)

Currently the verbose logging for "Sources to be formatted" is a little
suspect in that it is a completely different code path from
`get_sources`.

This can result in bugs like https://github.com/psf/black/pull/3216#issuecomment-1213557359
and generally limits the value of these logs.

This does change the "when" of this log, but the colours help separate
it from the even more verbose logs.
This commit is contained in:
Shantanu 2023-06-24 17:27:47 -07:00 committed by GitHub
parent 7be2735318
commit 93989e995d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 21 deletions

View File

@ -52,6 +52,7 @@
<!-- Changes to Black's terminal output and error messages -->
- Use aware UTC datetimes internally, avoids deprecation warning on Python 3.12 (#3728)
- Change verbose logging to exactly mirror _Black_'s logic for source discovery (#3749)
### _Blackd_

View File

@ -484,26 +484,6 @@ def main( # noqa: C901
fg="blue",
)
normalized = [
(
(source, source)
if source == "-"
else (normalize_path_maybe_ignore(Path(source), root), source)
)
for source in src
]
srcs_string = ", ".join(
[
(
f'"{_norm}"'
if _norm
else f'\033[31m"{source} (skipping - invalid)"\033[34m'
)
for _norm, source in normalized
]
)
out(f"Sources to be formatted: {srcs_string}", fg="blue")
if config:
config_source = ctx.get_parameter_source("config")
user_level_config = str(find_user_pyproject_toml())
@ -654,9 +634,15 @@ def get_sources(
is_stdin = False
if is_stdin or p.is_file():
normalized_path = normalize_path_maybe_ignore(p, ctx.obj["root"], report)
normalized_path: Optional[str] = normalize_path_maybe_ignore(
p, ctx.obj["root"], report
)
if normalized_path is None:
if verbose:
out(f'Skipping invalid source: "{normalized_path}"', fg="red")
continue
if verbose:
out(f'Found input source: "{normalized_path}"', fg="blue")
normalized_path = "/" + normalized_path
# Hard-exclude any files that matches the `--force-exclude` regex.
@ -679,6 +665,9 @@ def get_sources(
sources.add(p)
elif p.is_dir():
p = root / normalize_path_maybe_ignore(p, ctx.obj["root"], report)
if verbose:
out(f'Found input source directory: "{p}"', fg="blue")
if using_default_exclude:
gitignore = {
root: root_gitignore,
@ -699,9 +688,12 @@ def get_sources(
)
)
elif s == "-":
if verbose:
out("Found input source stdin", fg="blue")
sources.add(p)
else:
err(f"invalid path: {s}")
return sources