From 588f1f49eb0567006564451923c439f77d33ff7e Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 7 May 2014 22:12:42 +0200 Subject: Check the last line even if it does not end with a NL; issue #286 --- CHANGES.txt | 2 ++ pep8.py | 8 ++++---- testsuite/W29.py | 4 ++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index d8571b5..fd462b9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,6 +12,8 @@ Bug fixes: * Do not exit when an option in ``setup.cfg`` or ``tox.ini`` is not recognized. +* Check the last line even if it does not end with a newline. (Issue #286) + 1.5.6 (2014-04-14) ------------------ diff --git a/pep8.py b/pep8.py index bc91137..0d7e294 100755 --- a/pep8.py +++ b/pep8.py @@ -1367,6 +1367,8 @@ class Checker(object): tokengen = tokenize.generate_tokens(self.readline) try: for token in tokengen: + if token[2][0] > self.total_lines: + return self.maybe_check_physical(token) yield token except (SyntaxError, tokenize.TokenError): @@ -1449,10 +1451,8 @@ class Checker(object): token[3] = (token[2][0], token[2][1] + len(token[1])) self.tokens = [tuple(token)] self.check_logical() - if len(self.tokens) > 1 and (token_type == tokenize.ENDMARKER and - self.tokens[-2][0] not in SKIP_TOKENS): - self.tokens.pop() - self.check_physical(self.tokens[-1][4]) + if self.tokens: + self.check_physical(self.lines[-1]) self.check_logical() return self.report.get_file_results() diff --git a/testsuite/W29.py b/testsuite/W29.py index 688667f..4050c2f 100644 --- a/testsuite/W29.py +++ b/testsuite/W29.py @@ -15,3 +15,7 @@ string with trailing whitespace''' 1+ 1 #: W292:1:27 E261:1:12 noeol import this # no line feed +#: W292:3:22 noeol +class Test(object): + def __repr__(self): + return 'test' -- cgit v1.2.1