summaryrefslogtreecommitdiff
path: root/src/flake8/formatting/default.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/flake8/formatting/default.py')
-rw-r--r--src/flake8/formatting/default.py56
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'