```py3
with \
- make_context_manager(1) as cm1, \
- make_context_manager(2) as cm2, \
- make_context_manager(3) as cm3, \
- make_context_manager(4) as cm4 \
+ make_context_manager1() as cm1, \
+ make_context_manager2() as cm2, \
+ make_context_manager3() as cm3, \
+ make_context_manager4() as cm4 \
:
... # backslashes and an ugly stranded colon
```
```python
with contextlib.ExitStack() as exit_stack:
- cm1 = exit_stack.enter_context(make_context_manager(1))
- cm2 = exit_stack.enter_context(make_context_manager(2))
- cm3 = exit_stack.enter_context(make_context_manager(3))
- cm4 = exit_stack.enter_context(make_context_manager(4))
+ cm1 = exit_stack.enter_context(make_context_manager1())
+ cm2 = exit_stack.enter_context(make_context_manager2())
+ cm3 = exit_stack.enter_context(make_context_manager3())
+ cm4 = exit_stack.enter_context(make_context_manager4())
...
```
Unnecessary parentheses are stripped. The stability and status of this feature is
tracked in [this issue](https://github.com/psf/black/issues/2188).
-### Removing newlines in the beginning of code blocks
+### Improved empty line management
-_Black_ will remove newlines in the beginning of new code blocks, i.e. when the
-indentation level is increased. For example:
+1. _Black_ will remove newlines in the beginning of new code blocks, i.e. when the
+ indentation level is increased. For example:
-```python
-def my_func():
+ ```python
+ def my_func():
- print("The line above me will be deleted!")
-```
+ print("The line above me will be deleted!")
+ ```
-will be changed to:
+ will be changed to:
+
+ ```python
+ def my_func():
+ print("The line above me will be deleted!")
+ ```
+
+ This new feature will be applied to **all code blocks**: `def`, `class`, `if`,
+ `for`, `while`, `with`, `case` and `match`.
+
+2. _Black_ will enforce empty lines before classes and functions with leading comments.
+ For example:
+
+ ```python
+ some_var = 1
+ # Leading sticky comment
+ def my_func():
+ ...
+ ```
+
+ will be changed to:
+
+ ```python
+ some_var = 1
-```python
-def my_func():
- print("The line above me will be deleted!")
-```
-This new feature will be applied to **all code blocks**: `def`, `class`, `if`, `for`,
-`while`, `with`, `case` and `match`.
+ # Leading sticky comment
+ def my_func():
+ ...
+ ```
### Improved parentheses management