From 258586fb184b9db905e883f21ff636ee3360a992 Mon Sep 17 00:00:00 2001 From: Sean McGinnis Date: Mon, 23 Jul 2018 13:55:36 -0500 Subject: [PATCH] Update pylint to work with python 3 The pylint job was switched over to run under python 3, but the job is not voting and it was apparently missed that the conversion was causing it to fail. This updates the version of pylint to one that is actually supported by python 3 and makes tweaks to our script to for the minor changes between versions. Single character change to get rid of the more strict py3 regex string escape character format. Change-Id: I93124b62c5ee177815457b32f55f5453fc3d387e Signed-off-by: Sean McGinnis --- .gitignore | 4 ++++ cinderclient/client.py | 2 +- tools/lintstack.py | 16 ++++++++++------ tox.ini | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 92d89273c..9d12a57b2 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,7 @@ build dist cinderclient/versioninfo python_cinderclient.egg-info + +# pylint files +tools/lintstack.head.py +tools/pylint_exceptions diff --git a/cinderclient/client.py b/cinderclient/client.py index 9f6febec7..c4626a922 100644 --- a/cinderclient/client.py +++ b/cinderclient/client.py @@ -69,7 +69,7 @@ REQ_ID_HEADER = 'X-OpenStack-Request-ID' # tell keystoneclient that we can ignore the /v1|v2/{project_id} component of # the service catalog when doing discovery lookups for svc in ('volume', 'volumev2', 'volumev3'): - discover.add_catalog_discover_hack(svc, re.compile('/v[12]/\w+/?$'), '/') + discover.add_catalog_discover_hack(svc, re.compile(r'/v[12]/\w+/?$'), '/') def get_server_version(url): diff --git a/tools/lintstack.py b/tools/lintstack.py index 34ca056c2..1ae34d73d 100755 --- a/tools/lintstack.py +++ b/tools/lintstack.py @@ -16,8 +16,6 @@ """pylint error checking.""" -from __future__ import print_function - import json import re import sys @@ -70,6 +68,8 @@ class LintOutput(object): @classmethod def from_line(cls, line): m = re.search(r"(\S+):(\d+): \[(\S+)(, \S+)?] (.*)", line) + if m is None: + return None matched = m.groups() filename, lineno, code, message = (matched[0], int(matched[1]), matched[2], matched[-1]) @@ -83,13 +83,15 @@ class LintOutput(object): @classmethod def from_msg_to_dict(cls, msg): - """From the output of pylint msg, to a dict, where each key + """Convert pylint output to a dict. + + From the output of pylint msg, to a dict, where each key is a unique error identifier, value is a list of LintOutput """ result = {} for line in msg.splitlines(): obj = cls.from_line(line) - if obj.is_ignored(): + if obj is None or obj.is_ignored(): continue key = obj.key() if key not in result: @@ -147,8 +149,10 @@ class ErrorKeys(object): def run_pylint(): buff = StringIO() - reporter = text.ParseableTextReporter(output=buff) - args = ["--include-ids=y", "-E", "cinderclient"] + reporter = text.TextReporter(output=buff) + args = [ + "--msg-template='{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}'", + "-E", "cinderclient"] lint.Run(args, reporter=reporter, exit=False) val = buff.getvalue() buff.close() diff --git a/tox.ini b/tox.ini index 58c33c1ce..0adc492d2 100644 --- a/tox.ini +++ b/tox.ini @@ -33,7 +33,7 @@ basepython = python3 deps = -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -r{toxinidir}/requirements.txt - pylint==0.26.0 + pylint==1.9.1 commands = bash tools/lintstack.sh whitelist_externals = bash