From 97060a4f18341cdd7deb908cfd6bcf0fd7f302c8 Mon Sep 17 00:00:00 2001 From: Richard Si <63936253+ichard26@users.noreply.github.com> Date: Sat, 16 May 2020 05:21:31 -0400 Subject: [PATCH] Expand docs about slice formatting (#1418) Black will apply no spaces around ':' operators for 'simple' expresssions , but will apply extra space around ':' operators for 'complex' expressions. Black treats anything more than variable names as 'complex', but this isn't noted in the Black documentation. Which leads to a few issues on the GitHub issue tracker that all report inconsistent spacing around ':' operators. --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5bf6f06..405eae6 100644 --- a/README.md +++ b/README.md @@ -481,9 +481,12 @@ PEP 8 [recommends](https://www.python.org/dev/peps/pep-0008/#whitespace-in-expressions-and-statements) to treat `:` in slices as a binary operator with the lowest priority, and to leave an equal amount of space on either side, except if a parameter is omitted (e.g. -`ham[1 + 1 :]`). It also states that for extended slices, both `:` operators have to -have the same amount of spacing, except if a parameter is omitted (`ham[1 + 1 ::]`). -_Black_ enforces these rules consistently. +`ham[1 + 1 :]`). It recommends no spaces around `:` operators for "simple expressions" +(`ham[lower:upper]`), and extra space for "complex expressions" +(`ham[lower : upper + offset]`). _Black_ treats anything more than variable names as +"complex" (`ham[lower : upper + 1]`). It also states that for extended slices, both `:` +operators have to have the same amount of spacing, except if a parameter is omitted +(`ham[1 + 1 ::]`). _Black_ enforces these rules consistently. This behaviour may raise `E203 whitespace before ':'` warnings in style guide enforcement tools like Flake8. Since `E203` is not PEP 8 compliant, you should tell -- 2.39.2