Metadata-Version: 2.4
Name: eclosure
Version: 0.1.0
Summary: Python bindings and utilities for e-Closure based multiple testing procedures
Author: Ziyu Xu, Jelle Goeman
License-Expression: GPL-3.0-only
Project-URL: Homepage, https://github.com/neilzxu/eclosure
Project-URL: Documentation, https://neilzxu.github.io/eclosure/
Project-URL: Repository, https://github.com/neilzxu/eclosure
Project-URL: Issues, https://github.com/neilzxu/eclosure/issues
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.22
Provides-Extra: experiments
Requires-Dist: pandas>=1.5; extra == "experiments"
Requires-Dist: scipy>=1.9; extra == "experiments"
Requires-Dist: tqdm>=4.65; extra == "experiments"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocs-material>=9.6; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.30; extra == "docs"
Provides-Extra: plotting
Requires-Dist: matplotlib>=3.6; extra == "plotting"
Requires-Dist: seaborn>=0.12; extra == "plotting"
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: pandas>=1.5; extra == "test"
Requires-Dist: scipy>=1.9; extra == "test"
Requires-Dist: tqdm>=4.65; extra == "test"
Provides-Extra: dev
Requires-Dist: pybind11>=2.11; extra == "dev"
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: mkdocs>=1.6; extra == "dev"
Requires-Dist: mkdocs-material>=9.6; extra == "dev"
Requires-Dist: mkdocstrings[python]>=0.30; extra == "dev"
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pandas>=1.5; extra == "dev"
Requires-Dist: scipy>=1.9; extra == "dev"
Requires-Dist: tqdm>=4.65; extra == "dev"
Requires-Dist: matplotlib>=3.6; extra == "dev"
Requires-Dist: seaborn>=0.12; extra == "dev"
Requires-Dist: twine>=6.0; extra == "dev"

# eclosure

`eclosure` provides Python bindings and research utilities for e-Closure based
multiple testing procedures. The package wraps a compiled C++ backend for the
core closed e-BH and closed BY routines and ships example datasets used in the
paper.

- Documentation: <https://neilzxu.github.io/eclosure/>
- Source: <https://github.com/neilzxu/eclosure>
- Issue tracker: <https://github.com/neilzxu/eclosure/issues>
- Paper: <https://arxiv.org/abs/2509.02517>

## Installation

Install the core package from PyPI:

```bash
python -m pip install eclosure
```

Optional extras:

```bash
# experiment and real-data helpers
python -m pip install "eclosure[experiments]"

# plotting helpers used by the experiment code
python -m pip install "eclosure[plotting]"
```

Supported releases ship binary wheels for common CPython platforms. If you
build from source, you will need a working C++17 toolchain.

## Quick start

```python
import eclosure

eclosure.closedeBH([1.0, 100.0], alpha=0.05)
eclosure.closedBY([0.01, 0.5], alpha=0.05)
```

The top-level API focuses on the stable testing procedures. The experiments
workflow is available through the packaged module:

```bash
python -m eclosure.experiments --mode real --alpha 0.1 --out-dir figures
```

## Learn more

The full package documentation includes:

- API reference for `closedBY`, `closedeBH`, and packaged data helpers
- Script documentation for `python -m eclosure.experiments`
- Testing guidance for unit, real-data, and timing suites
- Notes on repository-only exploratory scripts that are not part of the package

See <https://neilzxu.github.io/eclosure/> for the full docs.
