mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-14 16:34:46 +00:00
Enable users who want to track all files processed
This adds two new methods to the BaseFormatter class: - beginning - finished These will indicate when Flake8 begins and finishes processing a file. Closes #251
This commit is contained in:
parent
cf0115e105
commit
5248cf3c2d
5 changed files with 35 additions and 2 deletions
|
|
@ -3,6 +3,9 @@
|
||||||
|
|
||||||
You can view the `3.3.0 milestone`_ on GitLab for more details.
|
You can view the `3.3.0 milestone`_ on GitLab for more details.
|
||||||
|
|
||||||
|
- Add methods to Report class that will be called when Flake8 starts and
|
||||||
|
finishes processing a file. (`GitLab#251`_)
|
||||||
|
|
||||||
- Dramatically improve the performance of Flake8 (`GitLab!156`_)
|
- Dramatically improve the performance of Flake8 (`GitLab!156`_)
|
||||||
|
|
||||||
- Fix problem where hooks should only check \*.py files. (See also
|
- Fix problem where hooks should only check \*.py files. (See also
|
||||||
|
|
@ -14,6 +17,8 @@ You can view the `3.3.0 milestone`_ on GitLab for more details.
|
||||||
.. links
|
.. links
|
||||||
.. _3.3.0 milestone:
|
.. _3.3.0 milestone:
|
||||||
https://gitlab.com/pycqa/flake8/milestones/16
|
https://gitlab.com/pycqa/flake8/milestones/16
|
||||||
|
.. _GitLab#251:
|
||||||
|
https://gitlab.com/pycqa/flake8/issues/251
|
||||||
.. _GitLab#268:
|
.. _GitLab#268:
|
||||||
https://gitlab.com/pycqa/flake8/issues/268
|
https://gitlab.com/pycqa/flake8/issues/268
|
||||||
.. _GitLab!156:
|
.. _GitLab!156:
|
||||||
|
|
|
||||||
|
|
@ -260,8 +260,9 @@ class Manager(object):
|
||||||
results_reported = results_found = 0
|
results_reported = results_found = 0
|
||||||
for checker in self.checkers:
|
for checker in self.checkers:
|
||||||
results = sorted(checker.results, key=lambda tup: (tup[1], tup[2]))
|
results = sorted(checker.results, key=lambda tup: (tup[1], tup[2]))
|
||||||
results_reported += self._handle_results(checker.display_name,
|
filename = checker.display_name
|
||||||
results)
|
with self.style_guide.processing_file(filename):
|
||||||
|
results_reported += self._handle_results(filename, results)
|
||||||
results_found += len(results)
|
results_found += len(results)
|
||||||
return (results_found, results_reported)
|
return (results_found, results_reported)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,24 @@ class BaseFormatter(object):
|
||||||
"""Initialize the formatter further."""
|
"""Initialize the formatter further."""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def beginning(self, filename):
|
||||||
|
"""Notify the formatter that we're starting to process a file.
|
||||||
|
|
||||||
|
:param str filename:
|
||||||
|
The name of the file that Flake8 is beginning to report results
|
||||||
|
from.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def finished(self, filename):
|
||||||
|
"""Notify the formatter that we've finished processing a file.
|
||||||
|
|
||||||
|
:param str filename:
|
||||||
|
The name of the file that Flake8 has finished reporting results
|
||||||
|
from.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
"""Prepare the formatter to receive input.
|
"""Prepare the formatter to receive input.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
"""Implementation of the StyleGuide used by Flake8."""
|
"""Implementation of the StyleGuide used by Flake8."""
|
||||||
import collections
|
import collections
|
||||||
|
import contextlib
|
||||||
import enum
|
import enum
|
||||||
import linecache
|
import linecache
|
||||||
import logging
|
import logging
|
||||||
|
|
@ -120,6 +121,13 @@ class StyleGuide(object):
|
||||||
|
|
||||||
return Selected.Implicitly
|
return Selected.Implicitly
|
||||||
|
|
||||||
|
@contextlib.contextmanager
|
||||||
|
def processing_file(self, filename):
|
||||||
|
"""Record the fact that we're processing the file's results."""
|
||||||
|
self.formatter.beginning(filename)
|
||||||
|
yield self
|
||||||
|
self.formatter.finished(filename)
|
||||||
|
|
||||||
def _decision_for(self, code):
|
def _decision_for(self, code):
|
||||||
# type: (Error) -> Decision
|
# type: (Error) -> Decision
|
||||||
select = find_first_match(code, self._all_selected)
|
select = find_first_match(code, self._all_selected)
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,7 @@ def test_report_order(results, expected_order):
|
||||||
file_checker.display_name = 'placeholder'
|
file_checker.display_name = 'placeholder'
|
||||||
|
|
||||||
style_guide = mock.Mock(spec=['options'])
|
style_guide = mock.Mock(spec=['options'])
|
||||||
|
style_guide.processing_file = mock.MagicMock()
|
||||||
|
|
||||||
# Create a placeholder manager without arguments or plugins
|
# Create a placeholder manager without arguments or plugins
|
||||||
# Just add one custom file checker which just provides the results
|
# Just add one custom file checker which just provides the results
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue