Metadata-Version: 2.1
Name: downstream
Version: 1.21.8
Summary: downstream provides efficient, constant-space algorithms for stream curation
Author-email: Matthew Andres Moreno <m.more500@gmail.com>
License: MIT license
Project-URL: homepage, https://github.com/mmore500/downstream.git
Project-URL: repository, https://github.com/mmore500/downstream
Keywords: downstream
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
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: lazy-loader>=0.4
Requires-Dist: joinem>=0.8.1
Requires-Dist: numpy>=2.0.0
Requires-Dist: opytional>=0.1.0
Requires-Dist: polars!=1.20.0,!=1.37.*,>=1.0.0
Provides-Extra: jit
Requires-Dist: numba>=0.60.0; extra == "jit"
Provides-Extra: testing
Requires-Dist: black==22.10.0; extra == "testing"
Requires-Dist: isort==5.12.0; extra == "testing"
Requires-Dist: nbqa==1.9.0; extra == "testing"
Requires-Dist: pytest==8.3.3; extra == "testing"
Requires-Dist: pytest-xdist==3.2.1; extra == "testing"
Requires-Dist: ruff==0.0.260; extra == "testing"
Requires-Dist: tqdm==4.64.1; extra == "testing"
Provides-Extra: release
Requires-Dist: bumpver==2022.1120; extra == "release"
Requires-Dist: twine==1.14.0; extra == "release"
Requires-Dist: wheel==0.45.0; extra == "release"
Requires-Dist: uv==0.2.34; extra == "release"
Requires-Dist: setuptools==75.5.0; extra == "release"

# Downstream --- Python Implementation

![downstream wordmark](https://raw.githubusercontent.com/mmore500/downstream/master/docs/assets/downstream-wordmark.png)

[![CI](https://github.com/mmore500/downstream/actions/workflows/python-ci.yaml/badge.svg?branch=python)](https://github.com/mmore500/downstream/actions/workflows/python-ci.yaml?query=branch:python)
[![GitHub stars](https://img.shields.io/github/stars/mmore500/downstream.svg?style=flat-square&logo=github&label=Stars&logoColor=white)](https://github.com/mmore500/downstream)
[
![PyPi](https://img.shields.io/pypi/v/downstream.svg)
](https://pypi.python.org/pypi/downstream)
[![DOI](https://zenodo.org/badge/776865597.svg)](https://zenodo.org/doi/10.5281/zenodo.10866541)

downstream provides efficient, constant-space implementations of stream curation algorithms.

-   Free software: MIT license

<!---
-   Documentation: <https://downstream.readthedocs.io>.
-->

## Installation

To install from PyPi with pip, run

`python3 -m pip install "downstream[jit]"`

A containerized release of `downstream` is available via <https://ghcr.io>

```bash
singularity exec docker://ghcr.io/mmore500/downstream:v1.21.8 python3 -m downstream --help
```

## Citing

If downstream contributes to a scientific publication, please cite it as

> Yang C., Wagner J., Dolson E., Zaman L., & Moreno M. A. (2025). Downstream: efficient cross-platform algorithms for fixed-capacity stream downsampling. arXiv preprint arXiv:2506.12975. https://doi.org/10.48550/arXiv.2506.12975

```bibtex
@misc{yang2025downstream,
      doi={10.48550/arXiv.2506.12975},
      url={https://arxiv.org/abs/2506.12975},
      title={Downstream: efficient cross-platform algorithms for fixed-capacity stream downsampling},
      author={Connor Yang and Joey Wagner and Emily Dolson and Luis Zaman and Matthew Andres Moreno},
      year={2025},
      eprint={2506.12975},
      archivePrefix={arXiv},
      primaryClass={cs.DS},
}
```

And don't forget to leave a [star on GitHub](https://github.com/mmore500/downstream/stargazers)!
