221 lines
6.4 KiB
INI
221 lines
6.4 KiB
INI
|
[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
|