flake8/tox.ini
Ian Stapleton Cordasco c58a4662d8
Use black to reformat Flake8
Instead of just using Flake8 and pylint to keep Flake8 clean, let's also
use black to make it less manual for clean-up.
2018-10-20 12:37:14 -05:00

174 lines
3.4 KiB
INI

[tox]
minversion=2.3.1
envlist = py27,py34,py35,py36,py37,flake8,linters,docs
[testenv]
deps =
mock>=2.0.0
pytest!=3.0.5
coverage
commands =
coverage run --parallel-mode -m pytest {posargs}
coverage combine
coverage report -m
[testenv:venv]
deps =
.
commands = {posargs}
# Dogfood our current master version
[testenv:dogfood]
basepython = python2.7
skip_install = true
deps =
wheel
flake8-colors
commands =
python setup.py -qq bdist_wheel
pip install --force-reinstall -U --pre --find-links ./dist/ flake8
flake8 --version
flake8 src/flake8/ tests/ setup.py
# Autoformatter
[testenv:black]
basepython = python3
skip_install = true
deps =
black
commands =
black -l 78 -N src/
# Linters
[testenv:flake8]
basepython = python3
skip_install = true
deps =
flake8
flake8-docstrings>=0.2.7
flake8-import-order>=0.9
pep8-naming
flake8-colors
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:black]deps}
{[testenv:flake8]deps}
{[testenv:pylint]deps}
{[testenv:doc8]deps}
{[testenv:readme]deps}
{[testenv:bandit]deps}
commands =
{[testenv:black]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
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
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, W503, E203
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
format = ${cyan}%(path)s${reset}:${yellow_bold}%(row)d${reset}:${green_bold}%(col)d${reset}: ${red_bold}%(code)s${reset} %(text)s