Skip to content

Commit

Permalink
Remove flake8 W503 from docs as it is ignored by default (psf#1661)
Browse files Browse the repository at this point in the history
Fixes psf#1660
  • Loading branch information
jdufresne authored and noxan committed Jun 6, 2021
1 parent a378e1a commit 4addec0
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 22 deletions.
4 changes: 2 additions & 2 deletions .flake8
@@ -1,7 +1,7 @@
[flake8]
ignore = E203, E266, E501, W503
extend-ignore = E203, E266, E501
# line length is intentionally set to 80 here because black uses Bugbear
# See https://github.com/psf/black/blob/master/README.md#line-length for more details
# See https://github.com/psf/black/blob/master/docs/the_black_code_style.md#line-length for more details
max-line-length = 80
max-complexity = 18
select = B,C,E,F,W,T4,B9
Expand Down
20 changes: 7 additions & 13 deletions docs/compatible_configs.md
Expand Up @@ -32,7 +32,7 @@ line_length = 88
_Black_ wraps imports that surpass `line-length` by moving identifiers into their own
indented line. If that still doesn't fit the bill, it will put all of them in separate
lines and put a trailing comma. A more detailed explanation of this behaviour can be
[found here](https://github.com/psf/black#how-black-wraps-lines).
[found here](https://github.com/psf/black/blob/master/docs/the_black_code_style.md#how-black-wraps-lines).

isort's default mode of wrapping imports that extend past the `line_length` limit is
"Grid".
Expand Down Expand Up @@ -146,21 +146,15 @@ There are a few deviations that cause incompatibilities with _Black_.

```
max-line-length = 88
extend-ignore = E203, W503
extend-ignore = E203
```

### Why those options above?

When breaking a line, _Black_ will break it before a binary operator. This is compliant
with PEP 8, but this behaviour will cause flake8 to raise
`W503 line break before binary operator` warnings.

In some cases, as determined by PEP 8, _Black_ will enforce an equal amount of
whitespace around slice operators. Due to this, Flake8 will raise
`E203 whitespace before ':'` warnings.

Since both of these warnings are not PEP 8 compliant, Flake8 should be configured to
ignore these warnings via `extend-ignore = E203, W503`.
`E203 whitespace before ':'` warnings. Since this warning is not PEP 8 compliant, Flake8
should be configured to ignore it via `extend-ignore = E203`.

Also, as like with isort, flake8 should be configured to allow lines up to the length
limit of `88`, _Black_'s default. This explains `max-line-length = 88`.
Expand All @@ -173,7 +167,7 @@ limit of `88`, _Black_'s default. This explains `max-line-length = 88`.
```ini
[flake8]
max-line-length = 88
extend-ignore = E203, W503
extend-ignore = E203
```

</details>
Expand All @@ -184,7 +178,7 @@ extend-ignore = E203, W503
```cfg
[flake8]
max-line-length = 88
extend-ignore = E203, W503
extend-ignore = E203
```

</details>
Expand All @@ -195,7 +189,7 @@ extend-ignore = E203, W503
```ini
[flake8]
max-line-length = 88
extend-ignore = E203, W503
extend-ignore = E203
```

</details>
Expand Down
10 changes: 3 additions & 7 deletions docs/the_black_code_style.md
Expand Up @@ -199,12 +199,12 @@ You'd do it like this:
max-line-length = 80
...
select = C,E,F,W,B,B950
ignore = E203, E501, W503
extend-ignore = E203, E501
```

You'll find _Black_'s own .flake8 config file is configured like this. Explanation of
why W503 and E203 are disabled can be found further in this documentation. And if you're
curious about the reasoning behind B950,
why E203 is disabled can be found further in this documentation. And if you're curious
about the reasoning behind B950,
[Bugbear's documentation](https://github.com/PyCQA/flake8-bugbear#opinionated-warnings)
explains it. The tl;dr is "it's like highway speed limits, we won't bother you if you
overdo it by a few km/h".
Expand Down Expand Up @@ -309,10 +309,6 @@ multiple lines. This is so that _Black_ is compliant with the recent changes in
[PEP 8](https://www.python.org/dev/peps/pep-0008/#should-a-line-break-before-or-after-a-binary-operator)
style guide, which emphasizes that this approach improves readability.

This behaviour may raise `W503 line break before binary operator` warnings in style
guide enforcement tools like Flake8. Since `W503` is not PEP 8 compliant, you should
tell Flake8 to ignore these warnings.

### Slices

PEP 8
Expand Down

0 comments on commit 4addec0

Please sign in to comment.