From ce20868b4996bd7fc28b7fc041e7c68f1facfd3f Mon Sep 17 00:00:00 2001 From: Ethan Paul Date: Sun, 8 Mar 2020 23:53:52 -0400 Subject: [PATCH] Update toxfile with better optimized settings and task dist Fix pycache cleanup in makefile Update makefile to use tox doc env for building documentation --- Makefile | 7 +++---- tox.ini | 31 +++++++++++++++---------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index 93faded..98dfe20 100644 --- a/Makefile +++ b/Makefile @@ -23,12 +23,13 @@ clean-tox: rm -rf ./.mypy_cache rm -rf ./.tox rm -f .coverage + find ./tests -true -type d -name __pycache__ -prune -exec rm -rf {} \; clean-py: rm -rf ./dist rm -rf ./build - rm -rf ./*/__pycache__ rm -rf ./*.egg-info + find ./keyosk -true -type d -name __pycache__ -prune -exec rm -rf {} \; clean-docs: rm -rf $(DOC_BUILDDIR) @@ -47,6 +48,4 @@ build: clean-py tox; ## Test and build python distributions poetry build docs: clean-docs ## Generate sphinx documentation, provide `DOC_FORMAT` to override default format of "html" - poetry run sphinx-apidoc -o "${DOC_SOURCEDIR}" "${DOC_PROJECT}" - rm $(DOC_SOURCEDIR)/modules.rst - poetry run sphinx-build -M $(DOC_FORMAT) "$(DOC_SOURCEDIR)" "$(DOC_BUILDDIR)" $(DOC_OPTIONS) $(0) + poetry run tox -e docs diff --git a/tox.ini b/tox.ini index 53669fd..b3aef71 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,10 @@ [tox] -envlist = py37, py36, lint, typing, security, docs +envlist = py36, py37, py38, format, static, docs +skip_missing_interpreters = true isolated_build = true [testenv] -description = Run the unit tests (pytest) +description = Run unit tests (pytest+{basepython}) deps = marshmallow == 3.5.0 passlib == 1.7.2 @@ -14,32 +15,30 @@ deps = commands = pytest --cov={envsitepackagesdir}/keyosk --cov-config .coveragerc tests/ --cov-report term-missing -[testenv:lint] -description = Check code formatting against black and pylint +[testenv:format] +description = Enforce code formatting (pre-commit) +skip_install = true deps = pre-commit == 2.1.0 - pylint == 2.3.1 - astroid == 2.2.5 commands = pre-commit run --all-files - pylint keyosk -[testenv:typing] -description = Check type annotations with mypy +[testenv:static] +description = Static code analysis (mypy+pylint+bandit) +skip_install = true +ignore_errors = true deps = + pylint == 2.3.1 + astroid == 2.2.5 mypy == 0.761 -commands = - mypy keyosk --ignore-missing-imports --no-strict-optional - -[testenv:security] -description = Check security vulnerabilities (bandit) -deps = bandit == 1.6.2 commands = + mypy keyosk --ignore-missing-imports --no-strict-optional + pylint keyosk --rcfile .pylintrc bandit --recursive keyosk [testenv:docs] -description = Build documentation to check RST syntax (sphinx) +description = Build documentation (sphinx) deps = sphinx == 2.4.2 sphinx-autodoc-typehints == 1.10.3