Skip to main content

gerrytools

tests PyPI version docs website Code style: Ruff

A companion to GerryChain, GerryTools provides tools for retrieving redistricting data, recording and scoring ensembles, comparing districting plans, and producing publication-ready figures and tables. It is developed by the Data and Democracy Research Initiative and distributed under the 3-Clause BSD License.

Installation

GerryTools requires Python 3.11 or newer. Published wheels include the compiled scoring engine; building from source requires a stable Rust toolchain and a C++ compiler.

To install GerryTools from PyPI, run:

pip install gerrytools

The gerrytools.ben API is included in the base installation. To use the Docker-backed ensemble runners in gerrytools.mgrp, install the optional dependency:

pip install "gerrytools[mgrp]"

The runners also require Docker Desktop, Docker Engine, or another compatible daemon. See the Docker documentation for platform requirements and setup instructions.

Usage

GerryTools is organized into public modules that can be used independently or together:

  • gerrytools.data retrieves decennial Census and American Community Survey tables, estimates block-level citizen voting-age population, and downloads processed 2020 geographic products.

  • gerrytools.plan_comparison compares plans by population or area, finds optimal district relabelings, and measures population dispersion.

  • gerrytools.plotting provides composable statistical and geographic plot builders that work with Matplotlib figures and axes.

  • gerrytools.colors provides named colors, district palettes, color conversion, and Matplotlib and seaborn colormaps.

  • gerrytools.mgrp runs Rust ReCom, Forest ReCom, Sequential Monte Carlo, and optimization workflows through a versioned Docker image.

  • gerrytools.ben records GerryChain runs as self-describing BENDL files and reconstructs recorded partitions for lookup, subsampling, and analysis.

  • gerrytools.scoring prepares graph and geometry resources once, evaluates plans with the compiled Rust scoring engine, and provides one-shot functions and array formulas.

  • gerrytools.latex builds LaTeX documents and tables plus TikZ-native paintball and seats-votes figures.

See the module guides for examples and the API reference for signatures and parameters.

Contributing

GerryTools is an active project, and has multiple contributors. If you'd like to contribute, here are a few house rules:

  1. Install task and uv, then run task setup from the repository root. Use task --list-all to see the available development workflows.

  2. Run task check before opening a pull request. Use task format for Ruff formatting and import sorting, task lint for Ruff linting, task test for the test suite, and task docs to build the documentation locally.

  3. Write tests. All changes, major or minor, must be accompanied by testing code. Code and tests will be immediately reviewed by Lab maintainers.

  4. Test coverage must stay at least the same; this can be checked by running uv run pytest --cov=gerrytools --cov-report=term-missing after the tests are added to tests/.

  5. Write documentation. Document public APIs and non-obvious invariants. Prefer clear names and focused functions over comments that merely restate the code.

We look forward to your contributions!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gerrytools-2.0.1.tar.gz (520.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gerrytools-2.0.1-cp311-abi3-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.11+Windows x86-64

gerrytools-2.0.1-cp311-abi3-manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

gerrytools-2.0.1-cp311-abi3-manylinux_2_28_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

gerrytools-2.0.1-cp311-abi3-macosx_10_13_x86_64.macosx_11_0_arm64.macosx_10_13_universal2.whl (7.3 MB view details)

Uploaded CPython 3.11+macOS 10.13+ universal2 (ARM64, x86-64)macOS 10.13+ x86-64macOS 11.0+ ARM64

File details

Details for the file gerrytools-2.0.1.tar.gz.

File metadata

  • Download URL: gerrytools-2.0.1.tar.gz
  • Upload date:
  • Size: 520.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gerrytools-2.0.1.tar.gz
Algorithm Hash digest
SHA256 f5b4976fca5e94857ebf9f234c98b97dd19116fe5836b96ed68ff7838f8f821f
MD5 f51fa91145313f8782b8e81d8aeeaedc
BLAKE2b-256 4f740a6646f2aefb55cea005d1bb05d4f1c6e75976fb9bc58485cfea337721b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for gerrytools-2.0.1.tar.gz:

Publisher: release.yml on mggg/gerrytools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gerrytools-2.0.1-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: gerrytools-2.0.1-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gerrytools-2.0.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 76c59f4a6cdbdc8b907c11a435f7ecc9709ace99b294146a3046620b16094b52
MD5 16449ab6ce324d3061fc54104622d440
BLAKE2b-256 8c10c04ffe93bc2e964ff6b382dca518e05523cd52b08d246705e05797e106a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for gerrytools-2.0.1-cp311-abi3-win_amd64.whl:

Publisher: release.yml on mggg/gerrytools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gerrytools-2.0.1-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gerrytools-2.0.1-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc451bfbe2cb7ed0c5a48f9366fd703ab0dd2a10a323e14d41debb1ffac7ec45
MD5 9c761fb4fec1d504a4516e1a2786d787
BLAKE2b-256 2039799a6a239f12dd3861dda637ed9ceeeb83e2bc22a72314300be5b3670a04

See more details on using hashes here.

Provenance

The following attestation bundles were made for gerrytools-2.0.1-cp311-abi3-manylinux_2_28_x86_64.whl:

Publisher: release.yml on mggg/gerrytools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gerrytools-2.0.1-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gerrytools-2.0.1-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d4e1b4e0b71bbf45d9dbae4d051fb2e666999d0ed8d9d4e95d8ecc520cf8b0e4
MD5 ada3ec388943b18f875859471ef49f76
BLAKE2b-256 d7bbc19c22c77b600dd3077fcd8f3eee1b14cce638a4375f2fceabe17d13e9ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for gerrytools-2.0.1-cp311-abi3-manylinux_2_28_aarch64.whl:

Publisher: release.yml on mggg/gerrytools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gerrytools-2.0.1-cp311-abi3-macosx_10_13_x86_64.macosx_11_0_arm64.macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for gerrytools-2.0.1-cp311-abi3-macosx_10_13_x86_64.macosx_11_0_arm64.macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 983ac461ceeb996aa5db9c49a0a031a3843d196bf8bdc5ada008e7c4c78b64f9
MD5 a8acd14d58ce60272fb6707b5eace131
BLAKE2b-256 94b7d67ef239531fef645b9cff768827498938c1f9b77de68610ca090bb5d77a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gerrytools-2.0.1-cp311-abi3-macosx_10_13_x86_64.macosx_11_0_arm64.macosx_10_13_universal2.whl:

Publisher: release.yml on mggg/gerrytools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.0.1 This release

5 files

2.0.0

5 files

1.2.1

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.2

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page