- Use parentheses for attribute access on decimal float and int literals (#2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex
literals (#2799)
+- Treat blank lines in stubs the same inside top-level `if` statements (#2820)
### Parser
return 0, 0
if self.is_pyi:
- if self.previous_line.depth > current_line.depth:
- newlines = 0 if current_line.depth else 1
- elif current_line.is_class or self.previous_line.is_class:
- if current_line.depth:
+ if current_line.is_class or self.previous_line.is_class:
+ if self.previous_line.depth < current_line.depth:
newlines = 0
+ elif self.previous_line.depth > current_line.depth:
+ newlines = 1
elif current_line.is_stub_class and self.previous_line.is_stub_class:
# No blank line between classes with an empty body
newlines = 0
# Blank line between a block of functions (maybe with preceding
# decorators) and a block of non-functions
newlines = 1
+ elif self.previous_line.depth > current_line.depth:
+ newlines = 1
else:
newlines = 0
else:
def h(): ...
+if sys.version_info >= (3, 8):
+ class E:
+ def f(self): ...
+ class F:
+
+ def f(self): ...
+ class G: ...
+ class H: ...
+else:
+ class I: ...
+ class J: ...
+ def f(): ...
+
+ class K:
+ def f(self): ...
+ def f(): ...
+
+class Nested:
+ class dirty: ...
+ class little: ...
+ class secret:
+ def who_has_to_know(self): ...
+ def verse(self): ...
+
+class Conditional:
+ def f(self): ...
+ if sys.version_info >= (3, 8):
+ def g(self): ...
+ else:
+ def g(self): ...
+ def h(self): ...
+ def i(self): ...
+ if sys.version_info >= (3, 8):
+ def j(self): ...
+ def k(self): ...
+ if sys.version_info >= (3, 8):
+ class A: ...
+ class B: ...
+ class C:
+ def l(self): ...
+ def m(self): ...
+
# output
X: int
def g(): ...
def h(): ...
+
+if sys.version_info >= (3, 8):
+ class E:
+ def f(self): ...
+
+ class F:
+ def f(self): ...
+
+ class G: ...
+ class H: ...
+
+else:
+ class I: ...
+ class J: ...
+
+ def f(): ...
+
+ class K:
+ def f(self): ...
+
+ def f(): ...
+
+class Nested:
+ class dirty: ...
+ class little: ...
+
+ class secret:
+ def who_has_to_know(self): ...
+
+ def verse(self): ...
+
+class Conditional:
+ def f(self): ...
+ if sys.version_info >= (3, 8):
+ def g(self): ...
+ else:
+ def g(self): ...
+
+ def h(self): ...
+ def i(self): ...
+ if sys.version_info >= (3, 8):
+ def j(self): ...
+
+ def k(self): ...
+ if sys.version_info >= (3, 8):
+ class A: ...
+ class B: ...
+
+ class C:
+ def l(self): ...
+ def m(self): ...