diff --git a/src/flake8/processor.py b/src/flake8/processor.py index 3827a26..d54a82f 100644 --- a/src/flake8/processor.py +++ b/src/flake8/processor.py @@ -106,7 +106,7 @@ class FileProcessor(object): @property def file_tokens(self): - """The complete set of tokens for a file. + """Return the complete set of tokens for a file. Accessing this attribute *may* raise an InvalidSyntax exception. @@ -334,7 +334,7 @@ class FileProcessor(object): def should_ignore_file(self): # type: () -> bool - """Check if ``# flake8: noqa`` is in the file to be ignored. + """Check if ``flake8: noqa`` is in the file to be ignored. :returns: True if a line matches :attr:`defaults.NOQA_FILE`, @@ -342,8 +342,16 @@ class FileProcessor(object): :rtype: bool """ - ignore_file = defaults.NOQA_FILE.search - return any(ignore_file(line) for line in self.lines) + if any(defaults.NOQA_FILE.match(line) for line in self.lines): + return True + elif any(defaults.NOQA_FILE.search(line) for line in self.lines): + LOG.warning( + 'Detected `flake8: noqa` on line with code. To ignore an ' + 'error on a line use `noqa` instead.', + ) + return False + else: + return False def strip_utf_bom(self): # type: () -> NoneType diff --git a/tests/unit/test_file_processor.py b/tests/unit/test_file_processor.py index a628cfd..312827b 100644 --- a/tests/unit/test_file_processor.py +++ b/tests/unit/test_file_processor.py @@ -46,6 +46,7 @@ def test_strip_utf_bom(first_line): (['#!/usr/bin/python', '# flake8: noqa', 'a = 1'], True), (['# flake8: noqa', '#!/usr/bin/python', 'a = 1'], True), (['#!/usr/bin/python', 'a = 1', '# flake8: noqa'], True), + (['#!/usr/bin/python', 'a = 1 # flake8: noqa'], False), ]) def test_should_ignore_file(lines, expected): """Verify that we ignore a file if told to."""