Allow empty lines at beginning of blocks (again)

This commit is contained in:
Jelle Zijlstra 2023-11-20 21:04:50 -08:00
parent a8062983cd
commit 18e711f7b4
5 changed files with 16 additions and 9 deletions

View File

@ -13,9 +13,10 @@
### Preview style
- Standalone form feed characters at the module level are no longer removed (#4021)
- Additional cases of immediately nested tuples, lists, and dictionaries are now
indented less (#4012)
- Allow empty lines at the beginning of all blocks, except immediately before a
docstring (#4060)
### Configuration

View File

@ -685,17 +685,13 @@ def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
return before, 1
is_empty_first_line_ok = (
Preview.allow_empty_first_line_before_new_block_or_comment
Preview.allow_empty_first_line_in_block
in current_line.mode
and (
# If it's a standalone comment
current_line.leaves[0].type == STANDALONE_COMMENT
# If it opens a new block
or current_line.opens_block
not is_docstring(current_line.leaves[0])
# If it's a triple quote comment (but not at the start of a funcdef)
or (
is_docstring(current_line.leaves[0])
and self.previous_line
self.previous_line
and self.previous_line.leaves[0]
and self.previous_line.leaves[0].parent
and not is_funcdef(self.previous_line.leaves[0].parent)

View File

@ -191,7 +191,7 @@ class Preview(Enum):
accept_raw_docstrings = auto()
fix_power_op_line_length = auto()
hug_parens_with_braces_and_square_brackets = auto()
allow_empty_first_line_before_new_block_or_comment = auto()
allow_empty_first_line_in_block = auto()
single_line_format_skip_with_multiple_comments = auto()
long_case_block_line_splitting = auto()
allow_form_feeds = auto()

View File

@ -51,6 +51,10 @@ def baz():
if x:
a = 123
def quux():
new_line = here
# output
def foo():
@ -104,3 +108,8 @@ def baz():
# OK
if x:
a = 123
def quux():
new_line = here

View File

@ -198,6 +198,7 @@ def foo():
# form feeds are prohibited inside blocks, or on a line with nonwhitespace
def bar(a=1, b: bool = False):
pass