diff options
| author | Ian Cordasco <graffatcolmingov@gmail.com> | 2016-07-25 14:29:09 -0500 |
|---|---|---|
| committer | Ian Cordasco <graffatcolmingov@gmail.com> | 2016-07-25 14:29:09 -0500 |
| commit | 4dc1d11a627a571eeae4e0ae3da7b94e7de04214 (patch) | |
| tree | fee0c2657ffb9d298305fa775ff4abd24cfd6c54 | |
| parent | fc035c4df280e1f10c2e1f73ce8c2ea2af5c99a7 (diff) | |
| download | flake8-bug/180.tar.gz | |
Wire-up --statistics againbug/180
I'm not sure where this code went or when, but it disappeared. Let's
add it back.
Related #180
| -rw-r--r-- | src/flake8/formatting/base.py | 13 | ||||
| -rw-r--r-- | src/flake8/main/application.py | 8 | ||||
| -rw-r--r-- | src/flake8/statistics.py | 10 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/flake8/formatting/base.py b/src/flake8/formatting/base.py index 7c2e4b5..c4a626b 100644 --- a/src/flake8/formatting/base.py +++ b/src/flake8/formatting/base.py @@ -85,6 +85,19 @@ class BaseFormatter(object): raise NotImplementedError('Subclass of BaseFormatter did not implement' ' format.') + def show_statistics(self, statistics): + """Format and print the statistics.""" + for error_code in statistics.error_codes(): + stats_for_error_code = statistics.statistics_for(error_code) + statistic = next(stats_for_error_code) + count = statistic.count + count += sum(stat.count for stat in stats_for_error_code) + self._write('{count:<5} {error_code} {message}'.format( + count=count, + error_code=error_code, + message=statistic.message, + )) + def show_benchmarks(self, benchmarks): """Format and print the benchmarks.""" # NOTE(sigmavirus24): The format strings are a little confusing, even diff --git a/src/flake8/main/application.py b/src/flake8/main/application.py index febe6c7..464ff92 100644 --- a/src/flake8/main/application.py +++ b/src/flake8/main/application.py @@ -263,6 +263,13 @@ class Application(object): LOG.info('Found a total of %d violations and reported %d', self.total_result_count, self.result_count) + def report_statistics(self): + """Aggregate and report statistics from this run.""" + if not self.options.statistics: + return + + self.formatter.show_statistics(self.guide.stats) + def initialize(self, argv): # type: () -> NoneType """Initialize the application to be run. @@ -285,6 +292,7 @@ class Application(object): self.initialize(argv) self.run_checks() self.report_errors() + self.report_statistics() self.report_benchmarks() def run(self, argv=None): diff --git a/src/flake8/statistics.py b/src/flake8/statistics.py index 2512089..d35d4bf 100644 --- a/src/flake8/statistics.py +++ b/src/flake8/statistics.py @@ -9,6 +9,16 @@ class Statistics(object): """Initialize the underlying dictionary for our statistics.""" self._store = {} + def error_codes(self): + """Return all unique error codes stored. + + :returns: + Sorted list of error codes. + :rtype: + list(str) + """ + return list(sorted(set(key.code for key in self._store.keys()))) + def record(self, error): """Add the fact that the error was seen in the file. |
