diff --git a/CHANGES.txt b/CHANGES.txt index 91a20950..0658c410 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -36,6 +36,9 @@ Changes: * Allow spaces around the equals sign in an annotated function. (Issue #357) +* Do not check vertical whitespace of non-top level classes / function + definitions. (Issue #366) + Bug fixes: * Don't crash if Checker.build_tokens_line() returns None. (Issue #306) diff --git a/pep8.py b/pep8.py index 67b32d16..78479bda 100755 --- a/pep8.py +++ b/pep8.py @@ -248,7 +248,7 @@ def blank_lines(logical_line, blank_lines, indent_level, line_number, E301: class Foo:\n b = 0\n def bar():\n pass E302: def a():\n pass\n\ndef b(n):\n pass - E303: def a():\n pass\n\n\n\ndef b(n):\n pass + E302: def a():\n pass\n\n\n\ndef b(n):\n pass E303: def a():\n\n\n\n pass E304: @decorator\n\ndef a():\n pass """ @@ -257,8 +257,6 @@ def blank_lines(logical_line, blank_lines, indent_level, line_number, if previous_logical.startswith('@'): if blank_lines: yield 0, "E304 blank lines found after function decorator" - elif blank_lines > 2 or (indent_level and blank_lines == 2): - yield 0, "E303 too many blank lines (%d)" % blank_lines elif logical_line.startswith(('def ', 'class ', '@')): if indent_level: if not (blank_before or previous_indent_level < indent_level or @@ -266,6 +264,8 @@ def blank_lines(logical_line, blank_lines, indent_level, line_number, yield 0, "E301 expected 1 blank line, found 0" elif blank_before != 2: yield 0, "E302 expected 2 blank lines, found %d" % blank_before + elif blank_lines > 2 or (indent_level and blank_lines == 2): + yield 0, "E303 too many blank lines (%d)" % blank_lines def extraneous_whitespace(logical_line): diff --git a/testsuite/E30.py b/testsuite/E30.py index d2d7bf35..be41a30b 100644 --- a/testsuite/E30.py +++ b/testsuite/E30.py @@ -87,4 +87,13 @@ def function(): """This class docstring comes on line 5. It gives error E303: too many blank lines (3) """ +#: E302 +def a(): + pass + + + + +def b(n): + pass #: diff --git a/testsuite/E30not.py b/testsuite/E30not.py index 0fd8fb0c..c1df60a2 100644 --- a/testsuite/E30not.py +++ b/testsuite/E30not.py @@ -6,6 +6,22 @@ class X: def foo(): pass #: Okay +if True: + def a(): + pass + + + def b(): + pass +#: Okay +if True: + class foo(): + pass + + + class bar(): + pass +#: Okay # -*- coding: utf-8 -*- class X: pass