mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-11 15:24:18 +00:00
Merge branch 'feature/output-file' into 'master'
Add --output-file option Addresses #15 This is, however, unfortunately affected by #17. That will need to be fixed before this can be merged. See merge request !15
This commit is contained in:
commit
6b27451e57
2 changed files with 33 additions and 14 deletions
27
flake8/callbacks.py
Normal file
27
flake8/callbacks.py
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
import atexit
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def install_vcs_hook(option, option_str, value, parser):
|
||||||
|
# For now, there's no way to affect a change in how pep8 processes
|
||||||
|
# options. If no args are provided and there's no config file present,
|
||||||
|
# it will error out because no input was provided. To get around this,
|
||||||
|
# when we're using --install-hook, we'll say that there were arguments so
|
||||||
|
# we can actually attempt to install the hook.
|
||||||
|
# See: https://gitlab.com/pycqa/flake8/issues/2 and
|
||||||
|
# https://github.com/jcrocholl/pep8/blob/4c5bf00cb613be617c7f48d3b2b82a1c7b895ac1/pep8.py#L1912
|
||||||
|
# for more context.
|
||||||
|
parser.values.install_hook = True
|
||||||
|
parser.rargs.append('.')
|
||||||
|
|
||||||
|
|
||||||
|
def restore_stdout(old_stdout):
|
||||||
|
sys.stdout.close()
|
||||||
|
sys.stdout = old_stdout
|
||||||
|
|
||||||
|
|
||||||
|
def redirect_stdout(option, option_str, value, parser):
|
||||||
|
fd = open(value, 'w')
|
||||||
|
old_stdout, sys.stdout = sys.stdout, fd
|
||||||
|
|
||||||
|
atexit.register(restore_stdout, old_stdout)
|
||||||
|
|
@ -5,6 +5,7 @@ import platform
|
||||||
import pep8
|
import pep8
|
||||||
|
|
||||||
from flake8 import __version__
|
from flake8 import __version__
|
||||||
|
from flake8 import callbacks
|
||||||
from flake8.reporter import multiprocessing, BaseQReport, QueueReport
|
from flake8.reporter import multiprocessing, BaseQReport, QueueReport
|
||||||
from flake8.util import OrderedSet, is_windows, is_using_stdin
|
from flake8.util import OrderedSet, is_windows, is_using_stdin
|
||||||
|
|
||||||
|
|
@ -38,19 +39,6 @@ def _register_extensions():
|
||||||
return extensions, parser_hooks, options_hooks, ignored_hooks
|
return extensions, parser_hooks, options_hooks, ignored_hooks
|
||||||
|
|
||||||
|
|
||||||
def _install_hook_cb(option, option_str, value, parser):
|
|
||||||
# For now, there's no way to affect a change in how pep8 processes
|
|
||||||
# options. If no args are provided and there's no config file present,
|
|
||||||
# it will error out because no input was provided. To get around this,
|
|
||||||
# when we're using --install-hook, we'll say that there were arguments so
|
|
||||||
# we can actually attempt to install the hook.
|
|
||||||
# See: https://gitlab.com/pycqa/flake8/issues/2 and
|
|
||||||
# https://github.com/jcrocholl/pep8/blob/4c5bf00cb613be617c7f48d3b2b82a1c7b895ac1/pep8.py#L1912
|
|
||||||
# for more context.
|
|
||||||
parser.values.install_hook = True
|
|
||||||
parser.rargs.append('.')
|
|
||||||
|
|
||||||
|
|
||||||
def get_parser():
|
def get_parser():
|
||||||
"""This returns an instance of optparse.OptionParser with all the
|
"""This returns an instance of optparse.OptionParser with all the
|
||||||
extensions registered and options set. This wraps ``pep8.get_parser``.
|
extensions registered and options set. This wraps ``pep8.get_parser``.
|
||||||
|
|
@ -81,7 +69,11 @@ def get_parser():
|
||||||
parser.add_option('--install-hook', default=False, dest='install_hook',
|
parser.add_option('--install-hook', default=False, dest='install_hook',
|
||||||
help='Install the appropriate hook for this '
|
help='Install the appropriate hook for this '
|
||||||
'repository.', action='callback',
|
'repository.', action='callback',
|
||||||
callback=_install_hook_cb)
|
callback=callbacks.install_vcs_hook)
|
||||||
|
parser.add_option('--output-file', default=None,
|
||||||
|
help='Redirect report to a file.',
|
||||||
|
type='string', nargs=1, action='callback',
|
||||||
|
callback=callbacks.redirect_stdout)
|
||||||
parser.ignored_extensions = ignored
|
parser.ignored_extensions = ignored
|
||||||
return parser, options_hooks
|
return parser, options_hooks
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue