All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 # The (future of the) Black code style
4 Changes to this document often aren't tied and don't relate to releases of
5 _Black_. It's recommended that you read the latest version available.
8 ## Using backslashes for with statements
10 [Backslashes are bad and should be never be used](labels/why-no-backslashes) however
11 there is one exception: `with` statements using multiple context managers. Before Python
12 3.9 Python's grammar does not allow organizing parentheses around the series of context
15 We don't want formatting like:
18 with make_context_manager1() as cm1, make_context_manager2() as cm2, make_context_manager3() as cm3, make_context_manager4() as cm4:
19 ... # nothing to split on - line too long
22 So _Black_ will eventually format it like this:
26 make_context_manager(1) as cm1, \
27 make_context_manager(2) as cm2, \
28 make_context_manager(3) as cm3, \
29 make_context_manager(4) as cm4 \
31 ... # backslashes and an ugly stranded colon
34 Although when the target version is Python 3.9 or higher, _Black_ will use parentheses
35 instead since they're allowed in Python 3.9 and higher.
37 ## Improved string processing
39 Currently, _Black_ does not split long strings to fit the line length limit. Currently,
40 there is [an experimental option](labels/experimental-string) to enable splitting
41 strings. We plan to enable this option by default once it is fully stable. This is
42 tracked in [this issue](https://github.com/psf/black/issues/2188).
46 Experimental, potentially disruptive style changes are gathered under the `--preview`
47 CLI flag. At the end of each year, these changes may be adopted into the default style,
48 as described in [The Black Code Style](./index.rst).