1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
[tox]
envlist = isort, black, flake8, safety, py3{8,9,10,11}, coverage
[gh-actions]
python =
3.8: install, safety, py38
3.9: install, py39
3.10: install, py310, coverage
3.11: install, py311
[testenv]
extras =
array
deps=
jsonschema
osqp~=0.6 ; python_version < "3.10"
pytest
pytest-benchmark~=4.0
pytest-mock
pytest-raises
commands =
pytest {posargs: --benchmark-skip}
[testenv:coverage]
setenv = SKIP_MP = 1
extras =
array
deps=
jsonschema
osqp~=0.6 ; python_version < "3.10"
pytest
pytest-benchmark~=4.0
pytest-cov
pytest-mock
pytest-raises
commands =
pytest --cov=cobra --cov-report=xml {posargs: --benchmark-skip}
[testenv:isort]
skip_install = True
deps=
isort
commands=
isort --check-only --diff {toxinidir}/src/cobra {toxinidir}/setup.py {toxinidir}/tests
[testenv:black]
skip_install = True
deps=
black
commands=
black --check --diff {toxinidir}/src/cobra {toxinidir}/setup.py {toxinidir}/tests
[testenv:flake8]
skip_install = True
deps=
flake8
flake8-docstrings
flake8-bugbear
commands=
flake8 {toxinidir}/src/cobra {toxinidir}/setup.py {toxinidir}/tests
[testenv:safety]
deps=
safety
commands=
safety check --full-report -i 70612
[testenv:install]
skip_install = True
deps=
build
twine
commands=
pip check {toxinidir}
python -m build {toxinidir}
twine check {toxinidir}/dist/*
################################################################################
# Testing tools configuration #
################################################################################
[pytest]
testpaths =
tests
markers =
raises
[coverage:paths]
source =
src/cobra
*/site-packages/cobra
[coverage:run]
branch = true
parallel = true
[coverage:report]
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover
precision = 2
[isort]
skip = __init__.py
profile = black
lines_after_imports = 2
known_first_party = cobra
known_third_party =
appdirs
depinfo
diskcache
future
httpx
libsbml
numpy
optlang
pandas
pydantic
pytest
rich
ruamel.yaml
scipy
swiglpk
[flake8]
exclude =
__init__.py
max-line-length = 88
# The following conflict with `black` which is the more pedantic.
extend-ignore =
E203
W503
D202
|