Tools for online voter registration in the United States of America
Project description
voter-tools
Tools for online voter registration in the United States of America.
Contains a command-line tool (vote) and a python library (voter_tools) to:
- Check voter registration status in key states, currently including:
- Georgia
- Michigan
- Pennsylvania
- Wisconsin
- Perform online voter registration (OVR) directly with key states, via their APIs. We currently support the Pennsylvania OVR API with plans to support Michigan and Washington states in the future.
Installation
Install this library using pip:
pip install voter-tools
Command-line usage
Check registration of a single voter
To check whether a voter is registered:
vote check <first-name> <last-name> <zip> <dob YYYY-MM-DD> [--details]
This will tell you whether the user is registered to vote. You can request extra details (registration date, current status, etc.) with the --details flag. Not all states support all details.
Check registration of multiple voters in bulk
There is also a tool to check every record in a CSV file:
vote check-csv <input-file.csv> [--details]
A new CSV is written to stdout with the same fields as the input CSV plus extras related to the registration check.
Interact with the Pennsylvania API
The vote command contains a number of sub-commands for interacting directly with the Pennsylvania state API.
For instance, to invoke the API's "get available languages" call:
> vote pa get-languages
languages=(Language(code='LANGENG', name='English'), Language(code='LANGSPN', name='Spanish'), Language(code='LANGTCN', name='Chinese'))
Use vote pa --help for details on available subcommands.
Development
To contribute to this library, first checkout the code. Then create a new virtual environment:
cd voter-tools
python -m venv .venv
source .venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[dev]'
To run tests:
make test
To run a full lint/typecheck/test pass:
make check
State-specific documents
We've collected state-specific documents in the docs directory and will try to keep them up-to-date as state APIs change.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file voter_tools-0.0.23.tar.gz.
File metadata
- Download URL: voter_tools-0.0.23.tar.gz
- Upload date:
- Size: 660.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4913ae2b3498e084258fdeb6ea1eb2b52e0629dcdd7950e4e2e8e417994ec53a
|
|
| MD5 |
63606594af1ffb94b1097d1812ae8aa5
|
|
| BLAKE2b-256 |
24f27166e7aba9b11bc39d80854aade7b24c628c0e2b330c93790e351ddec194
|
Provenance
The following attestation bundles were made for voter_tools-0.0.23.tar.gz:
Publisher:
publish.yml on front-seat/voter-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
voter_tools-0.0.23.tar.gz -
Subject digest:
4913ae2b3498e084258fdeb6ea1eb2b52e0629dcdd7950e4e2e8e417994ec53a - Sigstore transparency entry: 224178441
- Sigstore integration time:
-
Permalink:
front-seat/voter-tools@6661fa59287fd489e71e1499a4f8a3a9dd7afec7 -
Branch / Tag:
refs/tags/v0.0.23 - Owner: https://github.com/front-seat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6661fa59287fd489e71e1499a4f8a3a9dd7afec7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file voter_tools-0.0.23-py3-none-any.whl.
File metadata
- Download URL: voter_tools-0.0.23-py3-none-any.whl
- Upload date:
- Size: 670.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5977989a32def50dbbc1970020c9d37b2419e0cd0cf5c7032075913a68bc4e3
|
|
| MD5 |
f1048826e26ec4a1e33486b693493562
|
|
| BLAKE2b-256 |
11143006bbd16b129afacbc63c2574f529e56fd00c8e3098568eee2a2e77b3b2
|
Provenance
The following attestation bundles were made for voter_tools-0.0.23-py3-none-any.whl:
Publisher:
publish.yml on front-seat/voter-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
voter_tools-0.0.23-py3-none-any.whl -
Subject digest:
d5977989a32def50dbbc1970020c9d37b2419e0cd0cf5c7032075913a68bc4e3 - Sigstore transparency entry: 224178448
- Sigstore integration time:
-
Permalink:
front-seat/voter-tools@6661fa59287fd489e71e1499a4f8a3a9dd7afec7 -
Branch / Tag:
refs/tags/v0.0.23 - Owner: https://github.com/front-seat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6661fa59287fd489e71e1499a4f8a3a9dd7afec7 -
Trigger Event:
release
-
Statement type: