diff --git a/src/black/__init__.py b/src/black/__init__.py index 7cf93b89e42..fb73063177e 100644 --- a/src/black/__init__.py +++ b/src/black/__init__.py @@ -50,6 +50,7 @@ get_gitignore, normalize_path_maybe_ignore, parse_pyproject_toml, + path_is_excluded, wrap_stream_for_windows, ) from black.handle_ipynb_magics import ( @@ -639,25 +640,26 @@ def get_sources( is_stdin = False if is_stdin or p.is_file(): + root_relative_path = p.absolute().relative_to(root).as_posix() + + root_relative_path = "/" + root_relative_path + if p.is_dir(): + root_relative_path += "/" + + # Hard-exclude any files that matches the `--force-exclude` regex. + if path_is_excluded(root_relative_path, force_exclude): + report.path_ignored(p, "matches the --force-exclude regular expression") + continue + normalized_path: Optional[str] = normalize_path_maybe_ignore( p, root, report ) if normalized_path is None: if verbose: - out(f'Skipping invalid source: "{normalized_path}"', fg="red") + out(f'Skipping invalid source: "{p}"', 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. - if force_exclude: - force_exclude_match = force_exclude.search(normalized_path) - else: - force_exclude_match = None - if force_exclude_match and force_exclude_match.group(0): - report.path_ignored(p, "matches the --force-exclude regular expression") - continue + out(f'Found input source: "{p}"', fg="blue") if is_stdin: p = Path(f"{STDIN_PLACEHOLDER}{str(p)}")