These instructions apply to the entire repository.
- Runtime code lives in
src/mss. - Tests live in
src/tests. - Documentation lives in
docs/source. check.shandcheck.ps1are the maintainer-provided quality check entry points.
- Keep changes focused on the issue or PR scope.
- Be careful with public API changes. Update docs and tests when behavior changes.
- Prefer the existing ctypes-based, dependency-free style for runtime code.
- Do not add runtime dependencies unless the issue explicitly calls for one.
- If AI assistance was used, disclose it in the pull request template and state which parts were AI-assisted.
Install development dependencies:
python -m pip install -e ".[dev,tests]"Run quality checks before submitting a PR:
./check.shOn Windows:
.\check.ps1Run tests:
python -m pytestWhen adding, removing, or renaming a packaged file, update the explicit expected file list in
src/tests/test_setup.py::test_sdist and, for files included in binary distributions, in
src/tests/test_setup.py::test_wheel. Run the focused packaging tests:
python -m pytest src/tests/test_setup.py::test_sdist src/tests/test_setup.py::test_wheelWhen documentation changes, install docs dependencies and build docs with warnings as errors:
python -m pip install -e ".[docs]"
sphinx-build -d docs docs/source docs_out --color -W -bhtml