[tox] minversion=2.3.1 envlist = py27,py33,py34,py35,flake8,linters,docs [testenv] deps = mock pytest coverage commands = coverage run --parallel-mode -m pytest {posargs} coverage combine coverage report -m [testenv:venv] deps = . commands = {posargs} # Dogfood our current mastera version [testenv:dogfood] basepython = python3.5 skip_install = true deps = wheel commands = python setup.py -qq bdist_wheel pip install --pre --find-links ./dist/ flake8 flake8 --version flake8 src/flake8/ tests/ setup.py # Linters [testenv:flake8] basepython = python3 skip_install = true deps = flake8 flake8-docstrings>=0.2.7 flake8-import-order>=0.9 commands = flake8 src/flake8/ tests/ setup.py [testenv:pylint] basepython = python3 skip_install = true deps = pyflakes pylint commands = pylint src/flake8 [testenv:doc8] basepython = python3 skip_install = true deps = sphinx doc8 commands = doc8 docs/source/ [testenv:mypy] basepython = python3 skip_install = true deps = mypy-lang commands = mypy flake8 [testenv:bandit] basepython = python3 skip_install = true deps = bandit commands = bandit -r src/flake8/ -c .bandit.yml [testenv:linters] basepython = python3 skip_install = true deps = {[testenv:flake8]deps} {[testenv:pylint]deps} {[testenv:doc8]deps} {[testenv:readme]deps} {[testenv:bandit]deps} commands = {[testenv:flake8]commands} {[testenv:pylint]commands} {[testenv:doc8]commands} {[testenv:readme]commands} {[testenv:bandit]commands} # Documentation [testenv:docs] basepython = python3 deps = -rdocs/source/requirements.txt commands = sphinx-build -E -W -c docs/source/ -b html docs/source/ docs/build/html {[testenv:manpages]commands} [testenv:manpages] basepython = python3 deps = -rdocs/source/requirements.txt commands = sphinx-build -E -W -c docs/source/ -b man docs/source/ docs/build/man [testenv:serve-docs] basepython = python3 skip_install = true changedir = docs/build/html deps = commands = python -m http.server {posargs} [testenv:readme] basepython = python3 deps = readme_renderer commands = python setup.py check -r -s # Release tooling [testenv:build] basepython = python3 skip_install = true deps = wheel setuptools {[testenv:manpages]deps} commands = {[testenv:manpages]commands} python setup.py -q sdist bdist_wheel [testenv:release] basepython = python3 skip_install = true deps = {[testenv:build]deps} twine >= 1.5.0 commands = {[testenv:build]commands} twine upload --skip-existing dist/* # Flake8 Configuration [flake8] # Ignore some flake8-docstrings errors # NOTE(sigmavirus24): While we're still using flake8 2.x, this ignore line # defaults to selecting all other errors so we do not need select=E,F,W,I,D # Once Flake8 3.0 is released and in a good state, we can use both and it will # work well \o/ ignore = D203 exclude = .tox, .git, __pycache__, docs/source/conf.py, build, dist, tests/fixtures/*, *.pyc, *.egg-info, .cache, .eggs max-complexity = 10 import-order-style = google application-import-names = flake8