Skip to content

Commit

Permalink
Better error message for invalid exclude types (#3764)
Browse files Browse the repository at this point in the history
  • Loading branch information
hauntsaninja committed Jul 5, 2023
1 parent 8e618f3 commit cf4cc29
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CHANGES.md
Expand Up @@ -32,6 +32,8 @@
- `.pytest_cache`, `.ruff_cache` and `.vscode` are now excluded by default (#3691)
- Fix black not honouring `pyproject.toml` settings when running `--stdin-filename` and
the `pyproject.toml` found isn't in the current working directory (#3719)
- Black will now error if `exclude` and `extend-exclude` have invalid data types in
`pyproject.toml`, instead of silently doing the wrong thing (#3764)

### Packaging

Expand Down
10 changes: 10 additions & 0 deletions src/black/__init__.py
Expand Up @@ -157,6 +157,16 @@ def read_pyproject_toml(
"target-version", "Config key target-version must be a list"
)

exclude = config.get("exclude")
if exclude is not None and not isinstance(exclude, str):
raise click.BadOptionUsage("exclude", "Config key exclude must be a string")

extend_exclude = config.get("extend_exclude")
if extend_exclude is not None and not isinstance(extend_exclude, str):
raise click.BadOptionUsage(
"extend-exclude", "Config key extend-exclude must be a string"
)

default_map: Dict[str, Any] = {}
if ctx.default_map:
default_map.update(ctx.default_map)
Expand Down

0 comments on commit cf4cc29

Please sign in to comment.