[tox] envlist = py{310,311,312},lint,type,docs skip_missing_interpreters = true [testenv] description = Run unit tests deps = -r{toxinidir}/requirements-dev.txt commands = pytest {posargs} [testenv:lint] description = Run linting checks (black, ruff, isort) skip_install = false commands = black --check src tests isort --check-only src tests ruff check src tests [testenv:format] description = Auto-format code (black, isort) skip_install = false commands = black src tests isort src tests [testenv:type] description = Run type checking with mypy commands = mypy src/webdrop_bridge [testenv:docs] description = Build Sphinx documentation changedir = docs commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html [testenv:coverage] description = Run tests with coverage report commands = pytest --cov=src/webdrop_bridge --cov-report=term-missing --cov-report=html [testenv:build-windows] description = Build Windows installer (MSI) platform = win32 whitelist_externals = bash powershell commands = python build/scripts/build_windows.py [testenv:build-macos] description = Build macOS DMG package platform = darwin whitelist_externals = bash commands = bash build/scripts/build_macos.sh