diff options
author | Joe Gordon <jogo@cloudscaling.com> | 2013-01-31 15:07:54 -0800 |
---|---|---|
committer | Joe Gordon <jogo@cloudscaling.com> | 2013-01-31 16:07:09 -0800 |
commit | 2cd46876836310d94df0bad58f967023db4c727a (patch) | |
tree | 1715e41dfc0d9b83fcf255e6b2a70499e46b0b2d | |
parent | c2e4630f08cef843aade19be237c4c31ff7fccf1 (diff) | |
download | nova-2cd46876836310d94df0bad58f967023db4c727a.tar.gz nova-2cd46876836310d94df0bad58f967023db4c727a.tar.xz nova-2cd46876836310d94df0bad58f967023db4c727a.zip |
Add 'not in' test to tools/hacking.py
N901: Use the 'not in' operator for collection membership evaluation
Change-Id: Ie156359d85dd089d68eb214f1569f27577800e17
-rwxr-xr-x | tools/hacking.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/hacking.py b/tools/hacking.py index 801a87899..42a644e7d 100755 --- a/tools/hacking.py +++ b/tools/hacking.py @@ -43,6 +43,7 @@ logging.disable('LOG') #N6xx calling methods #N7xx localization #N8xx git commit messages +#N9xx other IMPORT_EXCEPTIONS = ['sqlalchemy', 'migrate', 'nova.db.sqlalchemy.session'] START_DOCSTRING_TRIPLE = ['u"""', 'r"""', '"""', "u'''", "r'''", "'''"] @@ -493,6 +494,23 @@ def nova_localization_strings(logical_line, tokens): #TODO(jogo) Dict and list objects + +def nova_not_in(logical_line): + r"""Check localization in line. + + Okay: if x not in y + Okay: if not (X in Y or X is Z) + Okay: if not (X in Y) + N901: if not X in Y + N901: if not X.B in Y + """ + split_line = logical_line.split() + if (len(split_line) == 5 and split_line[0] == 'if' and + split_line[1] == 'not' and split_line[3] == 'in' and not + split_line[2].startswith('(')): + yield (logical_line.find('not'), "N901: Use the 'not in' " + "operator for collection membership evaluation") + current_file = "" |