Plugins/CheckerPlugins/CodeStyleChecker/pycodestyle.py

changeset 6263
4dd53711d869
parent 6246
fe07a9f16f23
child 6645
ad476851d7e0
equal deleted inserted replaced
6261:36854b779685 6263:4dd53711d869
345 345
346 E301: class Foo:\n b = 0\n def bar():\n pass 346 E301: class Foo:\n b = 0\n def bar():\n pass
347 E302: def a():\n pass\n\ndef b(n):\n pass 347 E302: def a():\n pass\n\ndef b(n):\n pass
348 E302: def a():\n pass\n\nasync def b(n):\n pass 348 E302: def a():\n pass\n\nasync def b(n):\n pass
349 E303: def a():\n pass\n\n\n\ndef b(n):\n pass 349 E303: def a():\n pass\n\n\n\ndef b(n):\n pass
350 E303: def a():\n\n\n\n pass
351 E304: @decorator\n\ndef a():\n pass 350 E304: @decorator\n\ndef a():\n pass
352 E305: def a():\n pass\na() 351 E305: def a():\n pass\na()
353 E306: def a():\n def b():\n pass\n def c():\n pass 352 E306: def a():\n def b():\n pass\n def c():\n pass
353 E307: def a():\n def b():\n pass\n\n\n def c():\n pass
354 E308: def a():\n\n\n\n pass
354 """ 355 """
355 top_level_lines = BLANK_LINES_CONFIG['top_level'] 356 top_level_lines = BLANK_LINES_CONFIG['top_level']
356 method_lines = BLANK_LINES_CONFIG['method'] 357 method_lines = BLANK_LINES_CONFIG['method']
357 358
358 if line_number < top_level_lines + 1 and not previous_logical: 359 if line_number < top_level_lines + 1 and not previous_logical:
361 if blank_lines: 362 if blank_lines:
362 yield 0, "E304 blank lines found after function decorator" 363 yield 0, "E304 blank lines found after function decorator"
363 elif (blank_lines > top_level_lines or 364 elif (blank_lines > top_level_lines or
364 (indent_level and blank_lines == method_lines + 1) 365 (indent_level and blank_lines == method_lines + 1)
365 ): 366 ):
366 yield 0, "E303 too many blank lines (%d)", blank_lines 367 if indent_level:
368 if previous_logical.strip().startswith(('def ', 'class ')):
369 yield (0, "E308 too many blank lines (%d)", blank_lines)
370 else:
371 yield (0, "E307 too many blank lines (%d) in a nested "
372 "scope, expected %d", blank_lines, method_lines)
373 else:
374 yield (0, "E303 too many blank lines (%d), expected %d",
375 blank_lines, top_level_lines)
367 elif STARTSWITH_TOP_LEVEL_REGEX.match(logical_line): 376 elif STARTSWITH_TOP_LEVEL_REGEX.match(logical_line):
368 if indent_level: 377 if indent_level:
369 if not (blank_before == method_lines or 378 if not (blank_before == method_lines or
370 previous_indent_level < indent_level or 379 previous_indent_level < indent_level or
371 DOCSTRING_REGEX.match(previous_logical) 380 DOCSTRING_REGEX.match(previous_logical)
378 ancestor_level = expand_indent(line) 387 ancestor_level = expand_indent(line)
379 nested = line.lstrip().startswith('def ') 388 nested = line.lstrip().startswith('def ')
380 if nested or ancestor_level == 0: 389 if nested or ancestor_level == 0:
381 break 390 break
382 if nested: 391 if nested:
383 yield 0, "E306 expected %s blank line before a " \ 392 yield (0, "E306 expected %s blank lines before a "
384 "nested definition, found 0", method_lines 393 "nested definition, found %d", method_lines,
394 blank_before)
385 else: 395 else:
386 yield (0, "E301 expected %s blank line, found 0", 396 yield (0, "E301 expected %s blank lines, found %d",
387 method_lines) 397 method_lines, blank_before)
388 elif blank_before != top_level_lines: 398 elif blank_before != top_level_lines:
389 yield (0, "E302 expected %s blank lines, found %d", 399 yield (0, "E302 expected %s blank lines, found %d",
390 top_level_lines, blank_before) 400 top_level_lines, blank_before)
391 elif (logical_line and 401 elif (logical_line and
392 not indent_level and 402 not indent_level and

eric ide

mercurial