diff options
Diffstat (limited to 'src/flake8/formatting/default.py')
| -rw-r--r-- | src/flake8/formatting/default.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/flake8/formatting/default.py b/src/flake8/formatting/default.py new file mode 100644 index 0000000..bef8c88 --- /dev/null +++ b/src/flake8/formatting/default.py @@ -0,0 +1,56 @@ +"""Default formatting class for Flake8.""" +from flake8.formatting import base + + +class SimpleFormatter(base.BaseFormatter): + """Simple abstraction for Default and Pylint formatter commonality. + + Sub-classes of this need to define an ``error_format`` attribute in order + to succeed. The ``format`` method relies on that attribute and expects the + ``error_format`` string to use the old-style formatting strings with named + parameters: + + * code + * text + * path + * row + * col + + """ + + error_format = None + + def format(self, error): + """Format and write error out. + + If an output filename is specified, write formatted errors to that + file. Otherwise, print the formatted error to standard out. + """ + return self.error_format % { + "code": error.code, + "text": error.text, + "path": error.filename, + "row": error.line_number, + "col": error.column_number, + } + + +class Default(SimpleFormatter): + """Default formatter for Flake8. + + This also handles backwards compatibility for people specifying a custom + format string. + """ + + error_format = '%(path)s:%(row)d:%(col)d: %(code)s %(text)s' + + def after_init(self): + """Check for a custom format string.""" + if self.options.format.lower() != 'default': + self.error_format = self.options.format + + +class Pylint(SimpleFormatter): + """Pylint formatter for Flake8.""" + + error_format = '%(path)s:%(row)d: [%(code)s] %(text)s' |
