Skip to main content

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.

Installation

Install the core package from PyPI:

python -m pip install eclosure

Optional extras:

# 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

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:

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.

Citation

@article{xu2025bringing,
  title={Bringing Closure to False Discovery Rate Control: A General Principle for Multiple Testing},
  author={Xu, Ziyu and Solari, Aldo and Fischer, Lasse and de Heide, Rianne and Ramdas, Aaditya and Goeman, Jelle},
  journal={arXiv preprint arXiv:2509.02517},
  year={2025}
}

Release files for eclosure 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eclosure 0.1.1
File Size Uploaded
eclosure-0.1.1.tar.gz 538.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for eclosure 0.1.1
File
eclosure-0.1.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
eclosure-0.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
eclosure-0.1.1-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details
eclosure-0.1.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
eclosure-0.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
eclosure-0.1.1-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details
eclosure-0.1.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
eclosure-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
eclosure-0.1.1-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
eclosure-0.1.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
eclosure-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
eclosure-0.1.1-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
eclosure-0.1.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
eclosure-0.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
eclosure-0.1.1-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 12.1 MB

Release files / eclosure-0.1.1.tar.gz

Download URL eclosure-0.1.1.tar.gz
Size 538.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f29303190701bd8cc39541e63a4e72013cb4be13f3135c41cdd4acbeba8f1203
BLAKE2b-256 checksum
How to use checksums
a44824c093cdf2dc806a69fa95f862115dcdefdc275b6a227d9ed3cc6dbad731
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp313-cp313-win_amd64.whl

Download URL eclosure-0.1.1-cp313-cp313-win_amd64.whl
Size 353.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
fe9c756d5bc010eeec20d03b76b5b8122a9b82115f6f86abf8f4f78fa0e3c543
BLAKE2b-256 checksum
How to use checksums
3d152fcb080a366cef680b23f4c9c14f1e90c320daf7fbdf52e2d85b5514c6ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL eclosure-0.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
27879a3cd0906689c2612f5a32341c19ccfcb9814956b2890819b1f65df6f8ef
BLAKE2b-256 checksum
How to use checksums
086ef0f94aecc035f6b7ae818c155fb9124e60195049c8ea43161b26bdac5de9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp313-cp313-macosx_10_13_universal2.whl

Download URL eclosure-0.1.1-cp313-cp313-macosx_10_13_universal2.whl
Size 440.7 kB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
c96c3ed308dc5e5c4327e65dae9820ed84f6dbdf6d13c9a03cb0a5ee1fcd9dfc
BLAKE2b-256 checksum
How to use checksums
210286caada23c2f9f0c67cbd74db56d4630dc26f6f5e0396cf90065e7fa0daf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp312-cp312-win_amd64.whl

Download URL eclosure-0.1.1-cp312-cp312-win_amd64.whl
Size 353.7 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a69f0f62863c0ca6e169f919f4410052ba2c6aef584403866f49ab91bb45dfea
BLAKE2b-256 checksum
How to use checksums
5a13a6d689da2f9e5c9db9405b7de9eaf8603fea6b6073f16d26b81307f29900
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL eclosure-0.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8ed3b1ce7412c3c87b4e754a04e0128687cc08a8ac059bbedcd7f96187228166
BLAKE2b-256 checksum
How to use checksums
ed3d6ffea36b7d0abd3a2f0c7d78705779fc11488e9ca49908776eff9f20eee0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp312-cp312-macosx_10_13_universal2.whl

Download URL eclosure-0.1.1-cp312-cp312-macosx_10_13_universal2.whl
Size 440.6 kB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
f186ad5cef07032823cdc518f20761c24f63cb6f32c65e7b30c8e61323d4d25e
BLAKE2b-256 checksum
How to use checksums
e84bd600a93c4aa875ca494690d8d1a3d91ced9fb382390b74280bf43b175fb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp311-cp311-win_amd64.whl

Download URL eclosure-0.1.1-cp311-cp311-win_amd64.whl
Size 353.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
81a5143f6763ae9d6ec1ff752ba802f973343ef1f077f5ebaca85415172d326b
BLAKE2b-256 checksum
How to use checksums
4223c1f781f351c45f30e5427b4499c16c0c4e22f7f5ca14f8c0a7b0ba6faa7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL eclosure-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2038206bf2ba5c2bcc4e27376f45ccb7df50b38e0067f59277c12c2155786242
BLAKE2b-256 checksum
How to use checksums
3da7202788d7eab6cfd97ace2659d7a331890c7d3ac1593934cd1595a70596ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp311-cp311-macosx_10_9_universal2.whl

Download URL eclosure-0.1.1-cp311-cp311-macosx_10_9_universal2.whl
Size 439.1 kB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
93ca6b3ece54ee8e9500cd48dc707ec28d119a6e9816859cef52d6568a7ff8d7
BLAKE2b-256 checksum
How to use checksums
a2b1ffc772422607f874a15f71d943dc45a998cd5bb9196dc2a64a4bf6e71271
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp310-cp310-win_amd64.whl

Download URL eclosure-0.1.1-cp310-cp310-win_amd64.whl
Size 352.4 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
80af8f20cdbc103f66d72126841f7cab473598f7fb11101f4a0f1ef85f12396a
BLAKE2b-256 checksum
How to use checksums
b647d3b991e072daf2897ad8059426927b37dce23e22b627eb4308667bc0aaa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL eclosure-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
41e8de9d0d5289fcc0d079d697597287d93eb01f28e29691b562053f8c34bdc8
BLAKE2b-256 checksum
How to use checksums
6388db9a858701815d317448023a96929e07d9ac4a0ceac8bda7e048aed7e0f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp310-cp310-macosx_10_9_universal2.whl

Download URL eclosure-0.1.1-cp310-cp310-macosx_10_9_universal2.whl
Size 436.6 kB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
b745cbf9d28f26ba4147d33a70de9b3a812da2f3a188a55e202005580ec508b7
BLAKE2b-256 checksum
How to use checksums
8c59e38959a7f29f19697ba89a057907db4e9c49ebf3d45940d654b8af05b42b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp39-cp39-win_amd64.whl

Download URL eclosure-0.1.1-cp39-cp39-win_amd64.whl
Size 353.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
b0ee362b0407ebb5d31fbd91528812e8731087a54ee4a024fbac5cc393003e2d
BLAKE2b-256 checksum
How to use checksums
7d68e1448bd2032e0c1a9d19373e2ad8e3f43cc8937238bf540d9edcdb6f64d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL eclosure-0.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
97234c8f827944ac84480f35a3c48a1b4ccfff6944789435d95050420d4d41d2
BLAKE2b-256 checksum
How to use checksums
2737550f412064998092431a3a8a9472d3f38bb57037f8321ddeda2f9c2f0383
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / eclosure-0.1.1-cp39-cp39-macosx_10_9_universal2.whl

Download URL eclosure-0.1.1-cp39-cp39-macosx_10_9_universal2.whl
Size 436.8 kB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
88f6a38dd380a9702bf2b1c4db5d326b86c342b57bbcffd989a61e1fdfff4c19
BLAKE2b-256 checksum
How to use checksums
fc9cceb5d04abe830c900767d767a02fdeb50b8297f835f7c02d0d345255ef9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.1.1 This release

16 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page