VoteKit is a Swiss army knife for computational social choice research.
Helpful links: Source Repository | Documentation | Issues & Feature Requests | Contributing | MGGG.org
Votekit can be installed through any standard package management tool:
pip install votekit
For more detailed instructions, please see the installation section of the VoteKit documentation.
This project is in active development in the mggg/VoteKit GitHub repository, where bug reports and feature requests, as well as contributions, are welcome.
VoteKit uses uv for dependency management and go-task for common development commands. To set
up a contributor environment, install go-task and run task setup from the repository root.
That bootstraps Astral's official standalone uv, installs Python 3.11 if needed, and keeps the
managed tooling under .task-tools/.
Before making a pull request, run the following:
task formattask linttask typechecktask testtask coverage
To scope a test run to a subdirectory or file, use task test -- tests/<path> or
task test:tests/<path>.
If you already have uv on your PATH, you can also run the underlying commands directly with
uv run, for example uv run pytest tests --cov=src/votekit --cov-report=term-missing for a
coverage run or uv run pytest tests --runslow for the full test suite. The repository
root CONTRIBUTING.md contains the current contributor workflow, code style
guidance, and pull request expectations.