summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLeonardo Rochael Almeida <leorochael@gmail.com>2016-07-20 17:22:49 -0300
committerLeonardo Rochael Almeida <leorochael@gmail.com>2016-07-20 18:45:01 -0300
commit7934f8dce2fc1c5d8da374a3c7435d36f9526b0b (patch)
tree65be71e2def5f9f5b07e697e10c2ae0080224964 /src
parentb2b4cae8e3ef27b8545a8d98a35dc7b07b1b132f (diff)
downloadflake8-7934f8dce2fc1c5d8da374a3c7435d36f9526b0b.tar.gz
Propagate the stdin_display_name to checker and processor
This way plugins like flake8-putty can have access to the correct filename.
Diffstat (limited to 'src')
-rw-r--r--src/flake8/checker.py8
-rw-r--r--src/flake8/main/options.py2
-rw-r--r--src/flake8/processor.py17
-rw-r--r--src/flake8/style_guide.py2
4 files changed, 15 insertions, 14 deletions
diff --git a/src/flake8/checker.py b/src/flake8/checker.py
index d5132ff..7c70ace 100644
--- a/src/flake8/checker.py
+++ b/src/flake8/checker.py
@@ -398,20 +398,20 @@ class FileChecker(object):
:type style_guide:
flake8.style_guide.StyleGuide
"""
- self.filename = filename
self.checks = checks
self.style_guide = style_guide
self.results = []
- self.processor = self._make_processor()
+ self.processor = self._make_processor(filename)
+ self.filename = self.processor.filename
self.statistics = {
'tokens': 0,
'logical lines': 0,
'physical lines': len(self.processor.lines),
}
- def _make_processor(self):
+ def _make_processor(self, filename):
try:
- return processor.FileProcessor(self.filename,
+ return processor.FileProcessor(filename,
self.style_guide.options)
except IOError:
# If we can not read the file due to an IOError (e.g., the file
diff --git a/src/flake8/main/options.py b/src/flake8/main/options.py
index c725c38..dbfdf9b 100644
--- a/src/flake8/main/options.py
+++ b/src/flake8/main/options.py
@@ -74,7 +74,7 @@ def register_default_options(option_manager):
)
add_option(
- '--stdin-display-name', default='stdin',
+ '--stdin-display-name',
help='The name used when reporting errors from code passed via stdin.'
' This is useful for editors piping the file contents to flake8.'
' (Default: %default)',
diff --git a/src/flake8/processor.py b/src/flake8/processor.py
index 76c5512..ae82b50 100644
--- a/src/flake8/processor.py
+++ b/src/flake8/processor.py
@@ -55,12 +55,13 @@ class FileProcessor(object):
:param str filename:
Name of the file to process
"""
+ self.options = options
self.filename = filename
self.lines = lines
if lines is None:
- self.lines = self.read_lines()
+ # allow for stdin filename substitution
+ self.filename, self.lines = self.read_lines(filename)
self.strip_utf_bom()
- self.options = options
# Defaults for public attributes
#: Number of preceding blank lines
@@ -268,13 +269,15 @@ class FileProcessor(object):
self.indent_char = line[0]
return line
- def read_lines(self):
+ def read_lines(self, filename):
# type: () -> List[str]
"""Read the lines for this file checker."""
- if self.filename is None or self.filename == '-':
- self.filename = 'stdin'
- return self.read_lines_from_stdin()
- return self.read_lines_from_filename()
+ if filename is None or filename == '-':
+ filename = self.options.stdin_display_name or 'stdin'
+ lines = self.read_lines_from_stdin()
+ else:
+ lines = self.read_lines_from_filename()
+ return (filename, lines)
def _readlines_py2(self):
# type: () -> List[str]
diff --git a/src/flake8/style_guide.py b/src/flake8/style_guide.py
index ed1b844..284444d 100644
--- a/src/flake8/style_guide.py
+++ b/src/flake8/style_guide.py
@@ -260,8 +260,6 @@ class StyleGuide(object):
"""
error = Error(code, filename, line_number, column_number, text,
physical_line)
- if error.filename is None or error.filename == '-':
- error = error._replace(filename=self.options.stdin_display_name)
error_is_selected = (self.should_report_error(error.code) is
Decision.Selected)
is_not_inline_ignored = self.is_inline_ignored(error) is False