nostalgia/deps/QDark/tox.ini

221 lines
6.4 KiB
INI
Raw Normal View History

[tox]
envlist =
# Envs to build
{win,lin,mac}-{py36,py37,py38}-{pyqt5,pyside2,pyqt4,pyside}-{build,test}
# Envs for metrics and development
{win,lin,mac}-{py38}-{lint,safety,metric,develop,doc,release}
# Docs with screenshots
{win,lin,mac}-{py38}-{pyqt5,pyside2}-{doc}
skip_missing_interpreters =
true
[testenv]
platform =
# platforms to run
win: windows
lin: linux
mac: osx
deps =
build: -rreq-stable.txt
test: -rreq-test.txt
lint: -rreq-test.txt
safety: -rreq-test.txt
metric: -rreq-test.txt
develop: -rreq-develop.txt
doc: -rreq-doc.txt
release: -rreq-release.txt
# basic dependencies for each env
pyqt: pyqt4
pyqt5: pyqt5
pyside: pyside
pyside2: pyside2
whitelist_externals =
# non python dependencies
qmake
doc: make
doc: latexpdf
changedir=
doc: docs
commands =
# check depedencies
pip check
# list all deps
pip list
# BUILD ------------------------------------------------------------------
# try generate build
build: python setup.py sdist bdist_wheel
# try install with pip
build: pip install .
# get some info
build: python -m qdarkstyle --all
# need to run the interface to certify the build, run example
pyqt-build: python example/example.py --qt_from=pyqt --test
pyqt-build: python example/example.py --qt_from=pyqt --test --no_dark
pyqt5-build: python example/example.py --qt_from=pyqt5 --test
pyqt5-build: python example/example.py --qt_from=pyqt5 --test --no_dark
pyside-build: python example/example.py --qt_from=pyside --test
pyside-build: python example/example.py --qt_from=pyside --test --no_dark
pyside2-build: python example/example.py --qt_from=pyside2 --test
pyside2-build: python example/example.py --qt_from=pyside2 --test --no_dark
# TEST -------------------------------------------------------------------
# Those commands commented below correct style problems
# DO NOT RUN ON SERVER, it is just to keep registry for local use
# autopep8 --ignore=E501 --aggressive --aggressive --aggressive --experimental
# docformatter -r -i --wrap-summaries=0 --wrap-descriptions=0 *.py
# eradicate
# Test and coverage
# test: pytest --cov "./tests"
test: pytest --cov
# Code and docstring style check, running alone for now - pylama-#156
# test: pylama -v --options="tox.ini" "{toxinidir}"
# Code linting
lint: pycodestyle --config="tox.ini" "."
# lint: pyflakes "./qdarkstyle"
# lint: mypy --config-file="tox.ini" "qdarkstyle"
# Code and doc linting
lint: pylint -r y --rcfile="pylint.ini" "./qdarkstyle" --disable="R1260,R0912"
# Doc linting
lint: pydocstyle --config="tox.ini" "."
lint: doc8 --ignore="D002,D004" --config="tox.ini" "."
# Safety
safety: safety check
safety: bandit --recursive qdarkstyle
# Code metrics
metric: radon cc -a qdarkstyle --exclude="*/ui/*"
metric: radon mi qdarkstyle --exclude="*/ui/*"
metric: radon raw -s qdarkstyle --exclude="*/ui/*"
metric: radon hal -f qdarkstyle --exclude="*/ui/*"
# DOC (inside docs folder) ----------------------------------------------
# Documentation - generate apidocs, build html, build latex, build pdf
doc: sphinx-apidoc --private --separate --force --module-first -o "example" "{toxworkdir}/../example" "{toxworkdir}/../example/ui/*"
doc: sphinx-apidoc --private --separate --force --module-first -o "reference" "{toxworkdir}/../qdarkstyle"
doc: sphinx-apidoc --private --separate --force --module-first -o "scripts" "{toxworkdir}/../scripts"
doc: python "{toxworkdir}/../example/example.py" --screenshot
doc: python "{toxworkdir}/../example/example.py" --screenshot --no_dark
doc: sphinx-build -b html -j auto -E -d "{toxworkdir}/../build/docs/doctrees" . "{toxworkdir}/../build/docs/html"
# RELEASE -------------------------------------------------------------------------------
# Try to use re-ver package
release: python setup.py clean --all
release: python setup.py sdist bdist_wheel
release: python setup.py check -s -r # even deprecated, shows better error messages that are passing in twine
release: twine check dist/*
# try upload in test platform before the oficial
# release: twine upload --repository-url https://test.pypi.org/legacy/ dist/*
# release: pip install --index-url https://test.pypi.org/simple/ qdarkstyle
# upload to oficial
# release: twine upload dist/*
# release: pip uninstall qdarkstyle
# release: pip install qdarkstyle
usedevelop =
develop: true
# PYCODESTYLE ################################################################
[pycodestyle]
ignore = E501,C0301,W503,W504 # Issue: in travis shows W504, local W503 the same line
max-line-length = 150
statistics = True
count = True
exclude =
.tox,.env,.venv,build,dist,tests,examples,ui,*.egg-info*,*cache*,.coverage,
*/.tox/*,*/.env/*,*/.venv/*,*/build/*,*/dist/*,*/tests/*,*/ui/*,*/*.egg*,
*/.*,*/.coverage,*/./venv/*,./venv,*/docs/*,docs,venv,
style_rc.py,mw_for_ui_tests.py,test.py
# PYDOCSTYLE #################################################################
[pydocstyle]
ignore = D107,D200,D202,D203,D212,D213,D406,D407,D413
match-dir = "[^\.].*,!(docs),!(venv)"
match = "!style_rc.py"
# DOC8 #######################################################################
[doc8]
extension = .rst
ignore = D002,D004 # problems in Windows fyle system, issue. Also, it just works with the first ignored code
max-line-length = 150
file-encoding = "utf-8"
ignore-path =
.tox,.env,.venv,build,dist,tests,examples,ui,*.egg-info*,*cache*,.coverage,
*/.tox/*,*/.env/*,*/.venv/*,*/build/*,*/dist/*,*/tests/*,*/ui/*,*/*.egg*,
*/.*,*/.coverage,*/./venv/*,./venv
# PYLAMA #####################################################################
[pylama]
format = pylint
linters = pyflakes
skip =
.tox,.env,.venv,build,dist,tests,examples,ui,*.egg-info*,*cache*,.coverage,
*/.tox/*,*/.env/*,*/.venv/*,*/build/*,*/dist/*,*/tests/*,*/ui/*,*/*.egg*,
*/.*,*/.coverage,*/./venv/*,./venv,venv
# MYPY #######################################################################
[mypy]
# general configuration
[mypy-numpy]
ignore_missing_imports = True
[mypy-qtpy]
ignore_missing_imports = True
[mypy-scipy]
ignore_missing_imports = True
[mypy-pint]
ignore_missing_imports = True
[mypy-pyqtgraph]
ignore_missing_imports = True
[mypy-spyder]
ignore_missing_imports = True
[mypy-networkx]
ignore_missing_imports = True
[mypy-qdarkstyle]
ignore_missing_imports = True
[mypy-jsonpickle]
ignore_missing_imports = True