forked from qpsolvers/qpsolvers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
88 lines (81 loc) · 2.56 KB
/
tox.ini
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
[tox]
isolated_build = True
envlist = {coverage,lint}-py{37,38,39,310}-{linux,macos,windows}
[gh-actions]
python =
3.7: py37
3.8: py38
3.9: py39
3.10: py310
[gh-actions:env]
PLATFORM =
ubuntu-latest: linux
macos-latest: macos
windows-latest: windows
[testenv]
passenv = MOSEKLM_LICENSE_FILE
deps =
!py37-windows: cvxopt >=1.2.6
!windows: highspy >=1.1.2.dev3
clarabel >=0.4.1
daqp >=0.5.1
ecos >=2.0.8
gurobipy >=9.5.2
mosek >=10.0.40
numpy >=1.15.4
osqp >=0.6.2.post9
py{37,38,39,310}-{linux,macos}: piqp >=0.2.2
py38-{linux,macos}: proxsuite >=0.2.9
py{39,310}-linux: proxsuite >=0.2.9
quadprog >=0.1.11
scipy >=1.2.0
scs >=3.2.0
commands =
python -m unittest discover
[testenv:coverage]
passenv = MOSEKLM_LICENSE_FILE
deps =
clarabel >=0.4.1
coverage >=5.5
cvxopt >=1.2.6
daqp >=0.5.1
ecos >=2.0.8
gurobipy >=9.5.2
mosek >=10.0.40
highspy >=1.1.2.dev3
numpy >=1.15.4
osqp >=0.6.2.post9
piqp >= 0.2.2
proxsuite >=0.3.1
quadprog >=0.1.11
scipy >=1.2.0
scs >=3.2.0
commands =
coverage erase
coverage run -m unittest discover
coverage report --rcfile={toxinidir}/pyproject.toml
[testenv:lint]
deps =
black >=22.10.0
ruff >=0.0.220
mypy >=0.812
pylint >=2.8.2
commands =
black --check --diff qpsolvers
ruff qpsolvers
pylint qpsolvers --exit-zero --rcfile={toxinidir}/tox.ini
mypy qpsolvers --config-file {toxinidir}/tox.ini
[pylint]
; C0103: Argument name doesn't conform to snake_case naming style (qpsolvers uses uppercase for matrices)
; E0611: No name 'solve_qp' in module 'quadprog' (false positive, we have mypy to cover such errors)
; E1130: bad operand type for unary - (false positives fixed in newer versions of pylint, see https://github.com/PyCQA/pylint/issues/2436, anyhow we have mypy to cover such errors)
; R0801: Similar lines in * files (all our functions have the same prototype)
; R0902: Too many instance attributes (our QP formulation has 8 > 7)
; R0913: Too many arguments (our functions have more than 5 arguments)
; R0914: Too many local variables (our functions usually have more than 15 local variables)
disable=C0103, E0611, E1130, R0801, R0902, R0913, R0914, import-error
generated-members=clarabel.DefaultSettings, clarabel.DefaultSolver, clarabel.NonnegativeConeT, clarabel.SolverStatus, clarabel.ZeroConeT, daqp.solve, gurobipy.Model, gurobipy.MConstr, proxsuite.proxqp, qpSWIFT.run
[mypy]
disable_error_code = attr-defined, name-defined
ignore_missing_imports = True
warn_no_return = True