From 264bc0370ac3fc82f22b0f370c91bd0a12603c10 Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Sat, 5 Jan 2013 21:23:44 -0500 Subject: [PATCH] Use pep8's parser That much closer to a release --- flake8/main.py | 25 ++++++++++++++++++++----- flake8/util.py | 22 ++++++---------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/flake8/main.py b/flake8/main.py index a438d9b..9e462aa 100644 --- a/flake8/main.py +++ b/flake8/main.py @@ -4,30 +4,45 @@ import pep8 import flakey import select from flake8 import mccabe -from flake8.util import _initpep8, skip_file, get_parser, pep8style +from flake8.util import _initpep8, skip_file, get_parser + +pep8style = None def main(): global pep8style - # parse out our flags so pep8 doesn't get confused parser = get_parser() - opts, sys.argv = parser.parse_args() + opts, _ = parser.parse_args() if opts.install_hook: from flake8.hooks import install_hook install_hook() + if opts.builtins: + s = '--builtins={0}'.format(opts.builtins) + sys.argv.remove(s) + + if opts.exit_zero: + sys.argv.remove('--exit-zero') + + if opts.install_hook: + sys.argv.remove('--install-hook') + + complexity = opts.max_complexity + if complexity > 0: + sys.argv.remove('--max-complexity={0}'.format(complexity)) + # make sure pep8 gets the information it expects + sys.argv.pop(0) sys.argv.insert(0, 'pep8') pep8style = pep8.StyleGuide(parse_argv=True, config_file=True) options = pep8style.options - complexity = opts.max_complexity - builtins = set(opts.builtins.split(',')) warnings = 0 stdin = None + builtins = set(opts.builtins.split(',')) if builtins: orig_builtins = set(flakey.checker._MAGIC_GLOBALS) flakey.checker._MAGIC_GLOBALS = orig_builtins | builtins diff --git a/flake8/util.py b/flake8/util.py index 2c20516..49042d6 100644 --- a/flake8/util.py +++ b/flake8/util.py @@ -1,6 +1,7 @@ from __future__ import with_statement import re import os +import sys from io import StringIO import optparse @@ -19,41 +20,30 @@ def get_parser(): from flake8 import __version__ import flakey import pep8 + parser = pep8.get_parser() def version(option, opt, value, parser): parser.print_usage() parser.print_version() sys.exit(0) - def help(option, opt, value, parser): - parser.print_help() - p = pep8.get_parser() - p.print_help() - - # Create our own parser - parser = optparse.OptionParser('%prog [options] [file.py|directory]', - version=version, add_help_option=False) parser.version = '{0} (pep8: {1}, flakey: {2})'.format( __version__, pep8.__version__, flakey.__version__) parser.remove_option('--version') - # don't overlap with pep8's verbose option parser.add_option('--builtins', default='', dest='builtins', help="append builtin functions to flakey's " "_MAGIC_BUILTINS") - parser.add_option('--ignore', default='', - help='skip errors and warnings (e.g. E4,W)') parser.add_option('--exit-zero', action='store_true', default=False, help='Exit with status 0 even if there are errors') parser.add_option('--max-complexity', default=-1, action='store', type='int', help='McCabe complexity threshold') - parser.add_option('-V', '--version', action='callback', - callback=version, - help='Print the version info for flake8') parser.add_option('--install-hook', default=False, action='store_true', help='Install the appropriate hook for this ' 'repository.', dest='install_hook') - parser.add_option('-h', '--help', action='callback', callback=help, - help='Print this message and exit') + # don't overlap with pep8's verbose option + parser.add_option('-V', '--version', action='callback', + callback=version, + help='Print the version info for flake8') return parser