From b74441b6068f364956a27c691e0717bc71ad428e Mon Sep 17 00:00:00 2001 From: hauntsaninja Date: Sat, 24 Jun 2023 15:46:56 -0700 Subject: [PATCH 1/4] Integrate verbose logging with get_sources 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. --- src/black/__init__.py | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/black/__init__.py b/src/black/__init__.py index 60a339cdd12..07c2977c6eb 100644 --- a/src/black/__init__.py +++ b/src/black/__init__.py @@ -481,26 +481,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()) @@ -653,7 +633,11 @@ def get_sources( if is_stdin or p.is_file(): normalized_path = 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. @@ -676,6 +660,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, @@ -696,9 +683,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 From d7019cac69339ab4b205f4502404ecf22e8fd1e4 Mon Sep 17 00:00:00 2001 From: hauntsaninja Date: Sat, 24 Jun 2023 15:53:27 -0700 Subject: [PATCH 2/4] changelog --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 460f9c95114..dacd335b7b7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -50,6 +50,7 @@ - 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_ From a45f447991d2744eb50a367bc178fdb09e4b6000 Mon Sep 17 00:00:00 2001 From: hauntsaninja Date: Sat, 24 Jun 2023 16:40:51 -0700 Subject: [PATCH 3/4] explicit type hint --- src/black/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/black/__init__.py b/src/black/__init__.py index 07c2977c6eb..ab0aa8d380b 100644 --- a/src/black/__init__.py +++ b/src/black/__init__.py @@ -631,7 +631,7 @@ 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") From 307985bc285264acb11d8156b295710adba972ef Mon Sep 17 00:00:00 2001 From: hauntsaninja Date: Sat, 24 Jun 2023 16:45:25 -0700 Subject: [PATCH 4/4] format --- src/black/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/black/__init__.py b/src/black/__init__.py index ab0aa8d380b..f1f69c7b4e8 100644 --- a/src/black/__init__.py +++ b/src/black/__init__.py @@ -631,7 +631,9 @@ def get_sources( is_stdin = False if is_stdin or p.is_file(): - normalized_path: Optional[str] = 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")