From 7fa71afceea5cb045bb1d8508c2341d19396c09d Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Tue, 7 Jun 2016 15:18:59 -0500 Subject: [PATCH] Update maximum_line_length to use Checker.noqa This also updates the Checker to update it's state for physical lines as well as logical lines. This allows maximum_line_length to rely on Checker state for its noqa check. Closes #538 --- pycodestyle.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pycodestyle.py b/pycodestyle.py index a5141f2f..1ef837c1 100755 --- a/pycodestyle.py +++ b/pycodestyle.py @@ -199,7 +199,7 @@ def trailing_blank_lines(physical_line, lines, line_number, total_lines): return len(physical_line), "W292 no newline at end of file" -def maximum_line_length(physical_line, max_line_length, multiline): +def maximum_line_length(physical_line, max_line_length, multiline, noqa): r"""Limit all lines to a maximum of 79 characters. There are still many devices around that are limited to 80 character @@ -213,7 +213,7 @@ def maximum_line_length(physical_line, max_line_length, multiline): """ line = physical_line.rstrip() length = len(line) - if length > max_line_length and not noqa(line): + if length > max_line_length and not noqa: # Special case for long URLs in multi-line docstrings or comments, # but still report the error when the 72 first chars are whitespaces. chunks = line.split() @@ -1500,6 +1500,7 @@ def __init__(self, filename=None, lines=None, self.lines[0] = self.lines[0][3:] self.report = report or options.report self.report_error = self.report.error + self.noqa = False def report_invalid_syntax(self): """Check if the syntax is valid.""" @@ -1634,6 +1635,7 @@ def generate_tokens(self): for token in tokengen: if token[2][0] > self.total_lines: return + self.noqa = token[4] and noqa(token[4]) self.maybe_check_physical(token) yield token except (SyntaxError, tokenize.TokenError):