Merge pull request #3185 from gilles-peskine-arm/pylint-up-to-2.4-2.7

Backport 2.7: Pass Pylint up to 2.4
This commit is contained in:
Gilles Peskine 2020-04-20 09:47:54 +02:00 committed by GitHub
commit bc8c513ecb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 3 deletions

View file

@ -29,7 +29,7 @@ from types import SimpleNamespace
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
class AbiChecker(object): class AbiChecker:
"""API and ABI checker.""" """API and ABI checker."""
def __init__(self, old_version, new_version, configuration): def __init__(self, old_version, new_version, configuration):

View file

@ -17,7 +17,7 @@ import codecs
import sys import sys
class FileIssueTracker(object): class FileIssueTracker:
"""Base class for file-wide issue tracking. """Base class for file-wide issue tracking.
To implement a checker that processes a file as a whole, inherit from To implement a checker that processes a file as a whole, inherit from
@ -37,20 +37,31 @@ class FileIssueTracker(object):
self.files_with_issues = {} self.files_with_issues = {}
def should_check_file(self, filepath): def should_check_file(self, filepath):
"""Whether the given file name should be checked.
Files whose name ends with a string listed in ``self.files_exemptions``
will not be checked.
"""
for files_exemption in self.files_exemptions: for files_exemption in self.files_exemptions:
if filepath.endswith(files_exemption): if filepath.endswith(files_exemption):
return False return False
return True return True
def check_file_for_issue(self, filepath): def check_file_for_issue(self, filepath):
"""Check the specified file for the issue that this class is for.
Subclasses must implement this method.
"""
raise NotImplementedError raise NotImplementedError
def record_issue(self, filepath, line_number): def record_issue(self, filepath, line_number):
"""Record that an issue was found at the specified location."""
if filepath not in self.files_with_issues.keys(): if filepath not in self.files_with_issues.keys():
self.files_with_issues[filepath] = [] self.files_with_issues[filepath] = []
self.files_with_issues[filepath].append(line_number) self.files_with_issues[filepath].append(line_number)
def output_file_issues(self, logger): def output_file_issues(self, logger):
"""Log all the locations where the issue was found."""
if self.files_with_issues.values(): if self.files_with_issues.values():
logger.info(self.heading) logger.info(self.heading)
for filename, lines in sorted(self.files_with_issues.items()): for filename, lines in sorted(self.files_with_issues.items()):
@ -70,6 +81,10 @@ class LineIssueTracker(FileIssueTracker):
""" """
def issue_with_line(self, line, filepath): def issue_with_line(self, line, filepath):
"""Check the specified line for the issue that this class is for.
Subclasses must implement this method.
"""
raise NotImplementedError raise NotImplementedError
def check_file_line(self, filepath, line, line_number): def check_file_line(self, filepath, line, line_number):
@ -77,6 +92,10 @@ class LineIssueTracker(FileIssueTracker):
self.record_issue(filepath, line_number) self.record_issue(filepath, line_number)
def check_file_for_issue(self, filepath): def check_file_for_issue(self, filepath):
"""Check the lines of the specified file.
Subclasses must implement the ``issue_with_line`` method.
"""
with open(filepath, "rb") as f: with open(filepath, "rb") as f:
for i, line in enumerate(iter(f.readline, b"")): for i, line in enumerate(iter(f.readline, b"")):
self.check_file_line(filepath, line, i + 1) self.check_file_line(filepath, line, i + 1)
@ -169,7 +188,7 @@ class MergeArtifactIssueTracker(LineIssueTracker):
return False return False
class IntegrityChecker(object): class IntegrityChecker:
"""Sanity-check files under the current directory.""" """Sanity-check files under the current directory."""
def __init__(self, log_file): def __init__(self, log_file):