From 0a4626a7a6c9f12b56571a84dd895729e4232835 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Fri, 4 Jan 2013 15:46:18 -0500 Subject: [PATCH] fix N401 errors, stop ignoring all N4* errors We had previously been ignoring all our custom N4xx hacking.py errors. This fixes all the N401 errors "doc strings should not start with a space" and reduces the ignore set down to N402 only "single line docstrings should end with period". It also fixes the N401 parser to catch only docstrings, and not tripple quoted string blocks used later on in a function. Clean up a few of the more crazy uses of """ in our code Clean up additional funky comments to make indents a bit more consistent, and pull in lines when possible. Change-Id: I9040a1d2ca7efda83bd5e425b95d1408b5b63577 --- hacking.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/hacking.py b/hacking.py index bde4f42..a860aa3 100755 --- a/hacking.py +++ b/hacking.py @@ -268,18 +268,23 @@ def nova_import_no_db_in_virt(logical_line, filename): yield (0, "NOVA N307: nova.db import not allowed in nova/virt/*") -def nova_docstring_start_space(physical_line): +def nova_docstring_start_space(physical_line, previous_logical): """Check for docstring not start with space. nova HACKING guide recommendation for docstring: Docstring should not start with space N401 """ - pos = max([physical_line.find(i) for i in DOCSTRING_TRIPLE]) # start - if (pos != -1 and len(physical_line) > pos + 1): - if (physical_line[pos + 3] == ' '): - return (pos, "NOVA N401: one line docstring should not start with" - " a space") + # it's important that we determine this is actually a docstring, + # and not a doc block used somewhere after the first line of a + # function def + if (previous_logical.startswith("def ") or + previous_logical.startswith("class ")): + pos = max([physical_line.find(i) for i in DOCSTRING_TRIPLE]) + if (pos != -1 and len(physical_line) > pos + 4): + if (physical_line[pos + 3] == ' '): + return (pos, "NOVA N401: docstring should not start with" + " a space") def nova_docstring_one_line(physical_line):