
This patch addresses inconsistent code style and enforces it with a gate for future submissions. Separate work will be done in the future to address several of the PEP8 ignores for docstrings, and attempt to bring the tests directory to PEP8 compliance. This patch: 1. Updates .style.yapf to set the knobs desired for YAPF. 2. Updates tox.ini to allow one of the knobs to work. 3. Removes unused code from several __init__.py files. 4. Updates the YAPF version in test-requirements.txt to latest (this is needed for several knobs to work). 5. Stylistic changes to the python codebase in Pegleg. 6. Updates to tox.ini to run YAPF during PEP8 check. Change-Id: Ieaa0fdef2b601d01c875d64b840986e54df73abf
109 lines
2.9 KiB
INI
109 lines
2.9 KiB
INI
[tox]
|
|
envlist = py36,py37,pep8,docs,cover
|
|
minversion = 2.3.1
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
LANGUAGE=en_US
|
|
LC_ALL=en_US.utf-8
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
passenv = http_proxy https_proxy HTTP_PROXY HTTPS_PROXY no_proxy NO_PROXY PBR_VERSION
|
|
whitelist_externals =
|
|
bash
|
|
find
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
bash -c "{toxinidir}/tools/install-cfssl.sh"
|
|
{toxinidir}/tools/gate/run-unit-tests.sh '{posargs}'
|
|
|
|
[testenv:fmt]
|
|
basepython = python3
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
yapf -ir {toxinidir}/pegleg {toxinidir}/tests
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
bash -c "{toxinidir}/tools/gate/whitespace-linter.sh"
|
|
bandit -r pegleg -n 5
|
|
flake8 {toxinidir}/pegleg
|
|
yapf -dr {toxinidir}/pegleg {toxinidir}/tests
|
|
whitelist_externals =
|
|
bash
|
|
|
|
[testenv:docs]
|
|
basepython = python3
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
bash -c "{toxinidir}/tools/gate/build-docs.sh"
|
|
whitelist_externals =
|
|
bash
|
|
|
|
[testenv:bandit]
|
|
basepython = python3
|
|
commands = bandit -r pegleg -n 5
|
|
|
|
[testenv:safety]
|
|
basepython = python3
|
|
deps =
|
|
safety
|
|
commands =
|
|
safety check -r {toxinidir}/requirements.txt --full-report
|
|
safety check -r {toxinidir}/test-requirements.txt --full-report
|
|
safety check -r {toxinidir}/doc/requirements.txt --full-report
|
|
|
|
[testenv:cover]
|
|
basepython = python3
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
{toxinidir}/tools/install-cfssl.sh
|
|
bash -c 'PATH=$PATH:~/.local/bin; pytest --cov=pegleg --cov-report \
|
|
html:cover --cov-report xml:cover/coverage.xml --cov-report term \
|
|
--cov-fail-under 87 tests/'
|
|
whitelist_externals =
|
|
bash
|
|
|
|
[testenv:releasenotes]
|
|
basepython = python3
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -rf releasenotes/build
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
whitelist_externals =
|
|
rm
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[flake8]
|
|
filename = *.py
|
|
show-source = true
|
|
# [H106] Don't put vim configuration in source files.
|
|
# [H201] No 'except:' at least use 'except Exception:'
|
|
# [H904] Delay string interpolations at logging calls.
|
|
enable-extensions = H106,H201,H904
|
|
# TODO(lamt) Clean up these docstring violations if possible
|
|
# [H403] multi line docstrings should end on a new line
|
|
# [H404] multi line docstring should start without a leading new line
|
|
# [H405] multi line docstring summary not separated with an empty line
|
|
# [W503] line break before binary operator
|
|
ignore = H403,H404,H405,W503
|
|
exclude=.venv,.git,.tox,build,dist,*lib/python*,*egg,tools,*.ini,*.po,*.pot
|
|
max-complexity = 24
|
|
application-import-names = pegleg
|
|
application-package-names = deckhand,promenade,shipyard
|
|
import-order-style = pep8
|