3ce87c8a6b
The pre-commit module contained a reference to the variable DEFAULT_CONFIG which does not exist in the version of flake8 packaged with the project. The DEFAULT_CONFIG defines the path to the current user's local flake8 config file. The flake8 2.6.2 version packaged with project has been refactored to set the local flake8 config file in the flake8/main.py module.
45 lines
1.1 KiB
Python
Executable File
45 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import glob
|
|
import os
|
|
import sys
|
|
|
|
os.environ['PYFLAKES_NODOCTEST'] = '1'
|
|
|
|
# pep8.py uses sys.argv to find setup.cfg
|
|
sys.argv = [os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)]
|
|
|
|
# git usurbs your bin path for hooks and will always run system python
|
|
if 'VIRTUAL_ENV' in os.environ:
|
|
site_packages = glob.glob(
|
|
'%s/lib/*/site-packages' % os.environ['VIRTUAL_ENV'])[0]
|
|
sys.path.insert(0, site_packages)
|
|
|
|
|
|
def py_lint(files_modified):
|
|
from flake8.engine import get_style_guide
|
|
|
|
# remove non-py files and files which no longer exist
|
|
files_modified = filter(lambda x: x.endswith('.py'), files_modified)
|
|
|
|
flake8_style = get_style_guide(parse_argv=True)
|
|
report = flake8_style.check_files(files_modified)
|
|
|
|
return report.total_errors != 0
|
|
|
|
|
|
def main():
|
|
from flake8.hooks import run
|
|
|
|
gitcmd = "git diff-index --cached --name-only HEAD"
|
|
|
|
_, files_modified, _ = run(gitcmd)
|
|
|
|
files_modified = filter(lambda x: os.path.exists(x), files_modified)
|
|
|
|
if py_lint(files_modified):
|
|
return 1
|
|
return 0
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main()) |