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 <sean.mcginnis@gmail.com>
This commit is contained in:
Sean McGinnis 2018-07-23 13:55:36 -05:00
parent 4536b2fb9f
commit 258586fb18
No known key found for this signature in database
GPG Key ID: CE7EE4BFAF8D70C8
4 changed files with 16 additions and 8 deletions

4
.gitignore vendored
View File

@ -16,3 +16,7 @@ build
dist
cinderclient/versioninfo
python_cinderclient.egg-info
# pylint files
tools/lintstack.head.py
tools/pylint_exceptions

View File

@ -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):

View File

@ -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()

View File

@ -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