[tox] envlist = py38, py39, py310, py311, py312, py313, lint, type, coverage isolated_build = True skip_missing_interpreters = true [testenv] deps = pytest>=6.0.0 pytest-cov>=2.12.0 pytest-html>=4.1.1 requests>=2.32.4 httmock>=1.3.0 commands = pytest {posargs:tests} --html=unit_tests_report.html --self-contained-html --junitxml=unit_tests_report.xml --cov=cleverswarm_python_client [testenv:lint] deps = flake8>=3.9.2 black>=25.9.0 isort>=5.9.1 commands = flake8 --append-config=tox.ini src/cleverswarm_python_client black -t py310 -t py311 -t py312 -t py313 --check src/cleverswarm_python_client isort --check-only --profile black src/cleverswarm_python_client [testenv:type] deps = mypy>=0.812 commands = mypy src/cleverswarm_python_client [testenv:coverage] deps = pytest>=6.0.0 pytest-cov>=2.12.0 coverage>=5.5 requests>=2.32.4 httmock>=1.3.0 commands = pytest {posargs:tests} --cov=cleverswarm_python_client --cov-report=term --cov-report=xml:coverage_report.xml --cov-report=html coverage report --fail-under=85 [testenv:format] deps = black>=25.9.0 isort>=5.9.1 commands = black -t py310 -t py311 -t py312 -t py313 src/cleverswarm_python_client tests isort --profile black src/cleverswarm_python_client tests [flake8] max-line-length = 120 exclude = .tox,*.egg,build,data select = E,W,F ignore = E203, W503 [pytest] testpaths = tests python_files = test_*.py python_functions = test_*