/openstates

source for the Open State Project scrapers and API

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

The Open States Project collects and makes available data about state legislative activities, including bill summaries, votes, sponsorships and state legislator information. This data is gathered directly from the states and made available in a common format for interested developers, through a JSON API and data dumps.

Links

Getting Started

We use Docker to provide a reproducible development environment. Make sure you have Docker installed. Inside of the directory you cloned this project into:

docker-compose build  # Flaky. Try running the command again if it fails.
docker-compose up database  # Starts the database
docker-compose run openstates <abbreviated state code>  # Scrapes the state indicated by the code e.g. "ny"

This project runs on top of billy, a scraping framework for government data. Our Docker container runs the billy-update command (billy-update docs) with whatever arguments you put at the end of docker run. For example, you can limit the scrape to Tennessee's (tn) state senators using:

docker-compose run openstates tn --upper --legislators

Testing

To run all tests:

docker-compose run --entrypoint=nosetests openstates /srv/openstates-web/openstates

Note that Illinois (il) is the only state with tests right now.