Metadata-Version: 2.4
Name: async-graph-data-flow
Version: 2.0.0
Summary: Data flow along a directed acyclic graph of asynchronous generator functions
Author-email: Civis Analytics <opensource@civisanalytics.com>
License-Expression: BSD-3-Clause
Project-URL: Documentation, https://async-graph-data-flow.readthedocs.io
Project-URL: Source, https://github.com/civisanalytics/async-graph-data-flow
Keywords: async,asynchronous,asyncio,data flow,graph
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Framework :: AsyncIO
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: docs
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: furo; extra == "docs"
Requires-Dist: numpydoc; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid; extra == "docs"
Dynamic: license-file

# async-graph-data-flow

[![PyPI version](https://badge.fury.io/py/async-graph-data-flow.svg)](https://pypi.org/project/async-graph-data-flow/)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/async-graph-data-flow.svg)](https://pypi.org/project/async-graph-data-flow/)
[![CircleCI Builds](https://circleci.com/gh/civisanalytics/async-graph-data-flow.svg?style=shield)](https://circleci.com/gh/civisanalytics/async-graph-data-flow)

## Full Documentation

Please visit https://async-graph-data-flow.readthedocs.io

Please also check out this
[blog post](https://www.civisanalytics.com/blog/open-source-software-release-introducing-async-graph-data-flow-a-python-library-for-efficient-data-pipelines/)
introducing this package.

## License

BSD 3-Clause License. Please see `LICENSE.txt` in the GitHub source code for details.

## Setting up a Development Environment

The latest code under development is available on GitHub at
https://github.com/civisanalytics/async-graph-data-flow.
To obtain this version for experimental features or for development,
we recommend using [uv](https://docs.astral.sh/uv/) to manage the development environment:

```bash
git clone https://github.com/civisanalytics/async-graph-data-flow.git
cd async-graph-data-flow
uv pip install -e ".[dev]"
```

To run tests and styling checks:

```bash
uv run pytest
uv run flake8 src tests examples
uv run black --check src tests examples
```

## Building Documentation

We use the Sphinx framework. The documentation source files are in `docs/`.
These files can be updated as necessary.

The public documentation is accessible at https://async-graph-data-flow.readthedocs.io.
The doc build is configured by `.readthedocs.yaml`. 
Normally, even when we need to update the documentation or make a new release of async-graph-data-flow,
neither this configuration YAML file nor Civis's account on the Read the Docs site need any updates.
The builds by the Read The Docs site generate the necessary files (the HTML pages and other things)
for the public documentation. All these auto-generated files are explicitly not versioned (see `.gitignore`).

To build the documentation locally (for testing and development),
install the full doc-related dependencies: `uv pip install -r docs/requirements.txt`,
then run `uv run sphinx-build -b html docs/ docs/build/`.
