Metadata-Version: 2.1
Name: cdp-backend
Version: 3.0.0.dev3
Summary: Data storage utilities and processing pipelines to run on CDP server deployments.
Home-page: https://github.com/CouncilDataProject/cdp-backend
Author: Jackson Maxfield Brown
Author-email: jmaxfieldbrown@gmail.com
License: MIT license
Keywords: civic technology,open government
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: dask[bag] (~=2.30.0)
Requires-Dist: fireo (~=1.3.3)
Requires-Dist: fsspec (~=0.8.3)
Requires-Dist: gcsfs (~=0.7.1)
Requires-Dist: graphviz (~=0.14)
Requires-Dist: pandas (~=1.1.3)
Requires-Dist: pulumi (~=2.12.1)
Requires-Dist: pulumi-gcp (~=4.1.0)
Provides-Extra: all
Requires-Dist: dask[bag] (~=2.30.0) ; extra == 'all'
Requires-Dist: fireo (~=1.3.3) ; extra == 'all'
Requires-Dist: fsspec (~=0.8.3) ; extra == 'all'
Requires-Dist: gcsfs (~=0.7.1) ; extra == 'all'
Requires-Dist: graphviz (~=0.14) ; extra == 'all'
Requires-Dist: pandas (~=1.1.3) ; extra == 'all'
Requires-Dist: pulumi (~=2.12.1) ; extra == 'all'
Requires-Dist: pulumi-gcp (~=4.1.0) ; extra == 'all'
Requires-Dist: pytest-runner (>=5.2) ; extra == 'all'
Requires-Dist: black (>=19.10b0) ; extra == 'all'
Requires-Dist: codecov (>=2.1.4) ; extra == 'all'
Requires-Dist: flake8 (>=3.8.3) ; extra == 'all'
Requires-Dist: flake8-debugger (>=3.2.1) ; extra == 'all'
Requires-Dist: mypy (>=0.790) ; extra == 'all'
Requires-Dist: networkx (>=2.5) ; extra == 'all'
Requires-Dist: pydot (>=1.4) ; extra == 'all'
Requires-Dist: pytest (>=5.4.3) ; extra == 'all'
Requires-Dist: pytest-cov (>=2.9.0) ; extra == 'all'
Requires-Dist: pytest-raises (>=0.11) ; extra == 'all'
Requires-Dist: bump2version (>=1.0.1) ; extra == 'all'
Requires-Dist: coverage (>=5.1) ; extra == 'all'
Requires-Dist: ipython (>=7.15.0) ; extra == 'all'
Requires-Dist: jinja2 (>=2.11.2) ; extra == 'all'
Requires-Dist: m2r (>=0.2.1) ; extra == 'all'
Requires-Dist: Sphinx (<3,>=2.0.0b1) ; extra == 'all'
Requires-Dist: sphinx-rtd-theme (>=0.4.3) ; extra == 'all'
Requires-Dist: tox (>=3.15.2) ; extra == 'all'
Requires-Dist: twine (>=3.1.1) ; extra == 'all'
Requires-Dist: wheel (>=0.34.2) ; extra == 'all'
Provides-Extra: dev
Requires-Dist: pytest-runner (>=5.2) ; extra == 'dev'
Requires-Dist: black (>=19.10b0) ; extra == 'dev'
Requires-Dist: codecov (>=2.1.4) ; extra == 'dev'
Requires-Dist: flake8 (>=3.8.3) ; extra == 'dev'
Requires-Dist: flake8-debugger (>=3.2.1) ; extra == 'dev'
Requires-Dist: mypy (>=0.790) ; extra == 'dev'
Requires-Dist: networkx (>=2.5) ; extra == 'dev'
Requires-Dist: pydot (>=1.4) ; extra == 'dev'
Requires-Dist: pytest (>=5.4.3) ; extra == 'dev'
Requires-Dist: pytest-cov (>=2.9.0) ; extra == 'dev'
Requires-Dist: pytest-raises (>=0.11) ; extra == 'dev'
Requires-Dist: bump2version (>=1.0.1) ; extra == 'dev'
Requires-Dist: coverage (>=5.1) ; extra == 'dev'
Requires-Dist: ipython (>=7.15.0) ; extra == 'dev'
Requires-Dist: jinja2 (>=2.11.2) ; extra == 'dev'
Requires-Dist: m2r (>=0.2.1) ; extra == 'dev'
Requires-Dist: Sphinx (<3,>=2.0.0b1) ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme (>=0.4.3) ; extra == 'dev'
Requires-Dist: tox (>=3.15.2) ; extra == 'dev'
Requires-Dist: twine (>=3.1.1) ; extra == 'dev'
Requires-Dist: wheel (>=0.34.2) ; extra == 'dev'
Provides-Extra: setup
Requires-Dist: pytest-runner (>=5.2) ; extra == 'setup'
Provides-Extra: test
Requires-Dist: black (>=19.10b0) ; extra == 'test'
Requires-Dist: codecov (>=2.1.4) ; extra == 'test'
Requires-Dist: flake8 (>=3.8.3) ; extra == 'test'
Requires-Dist: flake8-debugger (>=3.2.1) ; extra == 'test'
Requires-Dist: mypy (>=0.790) ; extra == 'test'
Requires-Dist: networkx (>=2.5) ; extra == 'test'
Requires-Dist: pydot (>=1.4) ; extra == 'test'
Requires-Dist: pytest (>=5.4.3) ; extra == 'test'
Requires-Dist: pytest-cov (>=2.9.0) ; extra == 'test'
Requires-Dist: pytest-raises (>=0.11) ; extra == 'test'

# cdp-backend

[![Build Status](https://github.com/CouncilDataProject/cdp-backend/workflows/Build/badge.svg)](https://github.com/CouncilDataProject/cdp-backend/actions)
[![Documentation](https://github.com/CouncilDataProject/cdp-backend/workflows/Documentation/badge.svg)](https://CouncilDataProject.github.io/cdp-backend)
[![Code Coverage](https://codecov.io/gh/CouncilDataProject/cdp-backend/branch/main/graph/badge.svg)](https://codecov.io/gh/CouncilDataProject/cdp-backend)

Data storage utilities and processing pipelines to run on CDP server deployments.

---

## About

Council Data Project is an open-source project dedicated to providing journalists,
activists, researchers, and all members of each community we serve with the tools they
need to stay informed and hold their Council Members accountable.

By combining and simplifying sources of information on Council meetings and actions,
CDP ensures that everyone is empowered to participate in local government.

Each municipality that CDP supports (_a CDP instance_) has open source maintainers
which write code to gather municipality meeting information and compile them into a
single resource to then be processed, stored, and made accessible by our general CDP
tooling.

## Contributing

-   [cdp-backend](https://github.com/CouncilDataProject/cdp-backend): This repo. Contains
    all the database models, data processing pipelines, and infrastructure-as-code for CDP
    deployments. Contributions here will be available to all CDP instances. Entirely
    written in Python.
-   [cdp-frontend](https://github.com/CouncilDataProject/cdp-frontend): Contains all of
    the components used by the web apps to be hosted on GitHub Pages. Contributions here
    will be available to all CDP instances. Entirely written in
    TypeScript and React.
-   [cookiecutter-cdp-deployment](https://github.com/CouncilDataProject/cookiecutter-cdp-deployment):
    A template to be used by the Python `cookiecutter` package to create an entirely new
    deployment repository. This is where `cdp-backend` and `cdp-frontend` are imported and
    used. If you would like to create a new deployment under the
    `councildataproject.github.io` domain please
    [log a GitHub issue](https://github.com/CouncilDataProject/councildataproject.github.io/issues).
    If you want to utilize a different domain, simply use the template like any other
    `cookiecutter`.
-   [councildataproject.github.io](https://github.com/CouncilDataProject/councildataproject.github.io):
    Our landing page! Contributions here should largely be text changes and admin updates.

## Installation

**Stable Release:** `pip install cdp_backend`<br>
**Development Head:** `pip install git+https://github.com/CouncilDataProject/cdp-backend.git`<br>

**Dev Installation:**
For devs, please ensure that you have [dot / graphviz](https://graphviz.org/download/)
installed before working with tests and auto-documentation generation.

## Infrastructure

Please see [example-infrastructure](./example-infrastructure) for defaults on dev
deployments.

## Documentation

For full package documentation please visit [CouncilDataProject.github.io/cdp-backend](https://CouncilDataProject.github.io/cdp-backend).

## Development

See [CONTRIBUTING.md](CONTRIBUTING.md) for information related to development of this
repository.

**Free software: MIT license**


