if not has_value:
return
+ if token.COLON == leaf.type and self.is_class_parenth_empty:
+ del self.leaves[-2:]
+
if self.leaves and not preformatted:
# Note: at this point leaf.prefix should be empty except for
# imports, for which we only preserve newlines.
and self.leaves[0].value == "yield"
)
+ @property
+ def is_class_parenth_empty(self) -> bool:
+ """Is this class parentheses blank?"""
+ return (
+ bool(self)
+ and len(self.leaves) == 4
+ and self.is_class
+ and self.leaves[2].type == token.LPAR
+ and self.leaves[2].value == "("
+ and self.leaves[3].type == token.RPAR
+ and self.leaves[3].value == ")"
+ )
+
def contains_standalone_comments(self, depth_limit: int = sys.maxsize) -> bool:
"""If so, needs to be split before emitting."""
for leaf in self.leaves:
If any lines were generated, set up a new current_line.
"""
+
if not self.current_line:
if self.current_line.__class__ == type:
self.current_line.depth += indent
--- /dev/null
+class SimpleClassWithBlankParentheses():
+ pass
+
+
+class ClassWithSpaceParentheses():
+ first_test_data = 90
+ second_test_data = 100
+
+ def test_func(self):
+ return None
+
+
+class ClassWithEmptyFunc(object):
+
+ def func_with_blank_parentheses():
+ return 5
+
+
+def public_func_with_blank_parentheses():
+ return None
+
+
+def class_under_the_func_with_blank_parentheses():
+
+ class InsideFunc():
+ pass
+
+
+class NormalClass():
+
+ def func_for_testing(self, first, second):
+ sum = first + second
+ return sum
+
+
+# output
+
+
+class SimpleClassWithBlankParentheses:
+ pass
+
+
+class ClassWithSpaceParentheses:
+ first_test_data = 90
+ second_test_data = 100
+
+ def test_func(self):
+ return None
+
+
+class ClassWithEmptyFunc(object):
+
+ def func_with_blank_parentheses():
+ return 5
+
+
+def public_func_with_blank_parentheses():
+ return None
+
+
+def class_under_the_func_with_blank_parentheses():
+
+ class InsideFunc:
+ pass
+
+
+class NormalClass:
+
+ def func_for_testing(self, first, second):
+ sum = first + second
+ return sum
black.assert_equivalent(source, actual)
black.assert_stable(source, actual, line_length=ll)
+ @patch("black.dump_to_file", dump_to_stderr)
+ def test_remove_empty_parentheses_after_class(self) -> None:
+ source, expected = read_data("class_blank_parentheses")
+ actual = fs(source)
+ self.assertFormatEqual(expected, actual)
+ black.assert_equivalent(source, actual)
+ black.assert_stable(source, actual, line_length=ll)
+
def test_report(self) -> None:
report = black.Report()
out_lines = []