lazybgen
High-performance BGEN reader with Google Cloud Storage and Amazon S3 partial-read support. lazybgen reads only the variants or regions you ask for, fetching them directly from local files, GCS, or S3 via random-access byte-range reads, so there is no need to download the whole file.
It is a Cython/C++ implementation with vendored, optimized compression backends (libdeflate and zstd) compiled from source for consistent cross-platform behavior and speed (SIMD genotype parsing, parallel block decompression).
Install
pip install lazybgen
For Amazon S3 support, install the s3 extra:
pip install lazybgen[s3]
From source
git clone --recursive https://github.com/mkanai/lazybgen.git
cd lazybgen
pip install .
Building from source requires a C/C++ compiler (CMake is needed on Windows only).
The vendored libdeflate and zstd are git submodules, so clone with --recursive
(or run git submodule update --init --recursive).
Usage
from lazybgen import load_bgen
# Local file
genotypes, variant_info, sample_ids = load_bgen(
"chr1.bgen",
region="chr1:1000000-2000000", # partial read: only this region is fetched
)
# GCS (default credentials)
load_bgen("gs://bucket/file.bgen", index_path="gs://bucket/file.bgen.bgi")
# GCS requester-pays bucket. True bills the default project from your environment
load_bgen("gs://bucket/file.bgen", storage_options={"requester_pays": True})
# ...or pass a project id string to bill a specific project
load_bgen("gs://bucket/file.bgen", storage_options={"requester_pays": "my-billing-project"})
# Public S3 bucket (anonymous, no credentials)
load_bgen("s3://bucket/file.bgen", storage_options={"anon": True})
gs:// reads go through obstore by
default, which is 1.1x to 3.5x faster than gcsfs and needs no code change. See
Remote transports.
load_bgen returns (genotypes, variant_info, sample_ids), where genotypes
is an (n_samples, n_variants) np.ndarray, variant_info is a pd.DataFrame
with columns chrom, pos, rsid, ref, alt, and sample_ids is a list[str].
A .bgi index is required; create one with bgenix -g file.bgen.
Parameters
file_path: path,gs://, ors3://URL to the BGEN fileindex_path:.bgiindex (defaults tofile_path + ".bgi")sample_path: optional.samplefileregion:"chr:start-end"to read a genomic intervalvariant_filter: variant subset as a dict with keyschromosome,positions,allele1andallele2, the three lists aligned element by element and the alleles matching the file exactly (see Reading many variants); build it withload_variant_filter("variants.z"), which reads variant IDs/positions from a.zfile (from lazybgen import load_variant_filter)sample_ids: subset of samples to loaddtype: dosage dtype (defaultfloat64).np.float32decodes ~18% faster and uses half the memory; use it when single precision is sufficient (dosages are computed in single precision regardless, sofloat64output is the exact widening of thefloat32result)show_progress: show a progress bar while loading (defaultFalse)nan_action: how to handle missing dosages:"error"(default, raise),"mean"(impute with the per-variant mean),"omit"(drop affected samples), or"warn"(keep NaNs and log a warning)num_threads: worker threads for decoding.0(default) auto-detects the CPU core count and decodes blocks in parallel;1forces single-threaded decoding;N > 1uses N threads (see Parallel decode)storage_options: cloud backend kwargs, in fsspec spelling whichever transport serves them (e.g.{"anon": True}for public S3,{"requester_pays": True}to bill the env default project, or{"requester_pays": "billing-project-id"}for GCS requester-pays buckets)remote_backend: transport forgs://ands3://reads:"auto"(default),"obstore", or"fsspec"(see Remote transports)
Supported BGEN features
lazybgen computes alt-allele dosages and targets the most common BGEN profile:
| Feature | Support |
|---|---|
| Layout v1.2 / v1.3 | Yes |
| Layout v1.1 | Best-effort |
| Compression: zlib, zstd | Yes |
| Compression: none (uncompressed) | No |
| Biallelic, diploid (phased or unphased) | Yes |
| Multi-allelic (>2 alleles) | No |
| Non-diploid (ploidy != 2) | No |
Unsupported inputs raise a clear error rather than returning wrong dosages.
Compress uncompressed files with bgenix or qctool2 first.
Layout v1.1 is an older format with a different probability encoding; lazybgen
decodes it through a separate, less-exercised path, so it is best-effort. Prefer
v1.2 / v1.3 (re-encode with qctool2 if needed) for production use.
Reading many variants
Ask for the variants together rather than one call each. Every call returns a variant-info DataFrame, and pandas charges about 100 us to build one whatever its row count, so a loop of point lookups spends more time in pandas than in reading. For 500 variants the batched forms below are ~17x faster than the loop:
from lazybgen import load_bgen
from lazybgen.reader import BgenReader
# Your variants: positions and their alleles, aligned element by element.
positions = [10_001, 25_500, 91_200] # ...hundreds more
ref_alleles = ["A", "C", "G"]
alt_alleles = ["G", "T", "A"]
# Slow: one call, one DataFrame, per variant.
for pos in positions:
load_bgen("chr1.bgen", region=f"chr1:{pos}-{pos}")
# Fast: one call for the whole selection.
genotypes, variant_info, sample_ids = load_bgen(
"chr1.bgen",
variant_filter={
"chromosome": "chr1",
"positions": positions,
"allele1": ref_alleles,
"allele2": alt_alleles,
},
)
# Also fast, and memory-bounded: stream a contiguous range.
with BgenReader("chr1.bgen") as reader:
for info, dosage in reader.iter_variants(region_chrom="chr1", region_start=10_000, region_end=100_000):
...
All four keys are required, and the alleles must match the file exactly: a
variant whose alleles differ is not matched, and neither is one whose ref/alt
are the other way round, so a filter that matches nothing raises rather than
returning an empty result. load_variant_filter("variants.z") builds the dict
from a .z file if your variants come from one.
Memory
A local file is memory-mapped and read in place, so the compressed bytes are
never copied on the way and a read costs about the matrix it returns. lazybgen
peaks around 1.2x the bgen package for the same read (9.7 GB against 7.8 GB for
a 2000-variant region at 500k samples).
Ask for float32 when single precision is enough. Dosages are computed in single
precision either way, so a float64 result is the exact widening of the same
numbers, and asking for it costs twice the memory and ~18% more decode time:
import numpy as np
genotypes, _, _ = load_bgen("chr1.bgen", region="chr1:1-1000000", dtype=np.float32)
To avoid materializing the matrix at all, stream it: iter_variants is
O(n_samples x block_size) whatever the file holds (see
Streaming large files).
Streaming large files
load_bgen materializes the whole (n_samples, n_variants) matrix. For files
too large to hold at once, BgenReader.iter_variants() streams variants in
memory-bounded blocks (peak memory O(n_samples x block_size)). It yields
(info, dosage) per variant, where info is a dict with keys
chrom, pos, rsid, ref, alt (access as info["chrom"]) and dosage is a 1-D
array of per-sample dosages (NaN for missing):
from lazybgen.reader import BgenReader
with BgenReader("chr1.bgen") as reader:
for info, dosage in reader.iter_variants():
... # info["pos"]; dosage.shape == (reader.nsamples,)
It accepts the same region_chrom/region_start/region_end, variant_filter,
sample_indices, and dtype selection as load_variants. By default
block_size auto-scales to keep each block near a fixed memory budget (it
shrinks as the sample count grows); pass an explicit block_size to override.
Parallel decode
Decoding runs in parallel across CPU cores by default: each block is inflated and
decoded across worker threads, byte-identical to single-threaded decoding. This
applies to load_bgen, BgenReader.load_variants, and iter_variants, for both
all-samples and sample-filtered (cohort) reads, and scales with the sample and
core count: on a 16-core machine at 100k samples, a full decode is 6.8x faster
than num_threads=1 and a 2000-variant region 6.6x.
Control the worker count with num_threads: 0 (default) auto-detects the core
count, 1 forces single-threaded decoding, and N > 1 uses N threads.
# Parallel by default (auto-detected cores)
genotypes, variant_info, sample_ids = load_bgen("chr1.bgen")
# Force single-threaded decoding
load_bgen("chr1.bgen", num_threads=1)
# BgenReader takes the same num_threads control
with BgenReader("chr1.bgen", num_threads=8) as reader:
dosages, info = reader.load_variants(region_chrom="chr1", region_start=1, region_end=1_000_000)
Remote transports
gs:// reads go through obstore, which does HTTP and TLS in Rust with the GIL
released, so many range requests are genuinely in flight at once. s3:// goes
through fsspec (s3fs), because obstore's S3 store assumes the us-east-1
region and does not read ~/.aws/credentials, AWS_PROFILE or SSO. obstore and
gcsfs are installed by default; s3:// additionally needs
pip install lazybgen[s3]. storage_options are spelled the same way for either
transport, and requester-pays works on both.
remote_backend overrides the choice per reader ("auto", "obstore",
"fsspec"), and LAZYBGEN_REMOTE_BACKEND does it for a process.
"auto" falls back to fsspec whenever obstore is unavailable or cannot express
one of your storage_options, so an option that decides which bytes come back is
never silently dropped.
Against gcsfs, obstore is worth 1.1x to 3.5x end to end depending on the read: most for small ones, which are mostly connection and request latency, and least for a full decode, which is bandwidth plus decode.
Multiprocessing: obstore's runtime does not survive fork(), the default
start method on Linux. Children of a process that has already read fall back to
fsspec automatically rather than hanging; use the spawn or forkserver start
method to keep the faster transport in workers.
Remote .bgi index caching
For a gs:///s3:// BGEN, the genotype data is read in place via byte ranges,
but the .bgi index is downloaded once to a local cache. The cache lives in a
dedicated directory (a lazybgen-bgi-cache subdirectory of the system temp dir)
and each entry is keyed by a hash of the full URL, so same-named indexes in
different buckets never collide. Override the location with the
LAZYBGEN_BGI_CACHE_DIR environment variable.
Build info
from lazybgen import get_build_info returns the compression backend the package
was built against (vendored libdeflate / zstd, or system libraries).
Performance
Against the bgen package on the same local
files, 10k variants and samples scaling to biobank size (16 vCPU n2 VM, median of
3 warm runs, lazybgen's wall time in parentheses):
| Workload | 5k samples (94 MB) | 50k (931 MB) | 500k (9.1 GB) |
|---|---|---|---|
| Full decode | 10.7x (75 ms) | 15.3x (483 ms) | 15.5x (4.80 s) |
| Region (2000 variants) | 8.8x (18 ms) | 15.3x (99 ms) | 16.5x (961 ms) |
| Scattered (1000 variants) | 6.0x (15 ms) | 13.5x (57 ms) | 15.5x (501 ms) |
Remote: lazy partial reads at biobank scale
This is the point of the package. A local-only reader must download the whole file
before reading a byte, so its cost tracks file size; lazybgen fetches only the
variants you ask for, so its cost tracks the slice and does not grow with the
file. Each cell is the end-to-end speedup over downloading the file first
(whole-file gcloud storage cp + a local read), with that baseline in
parentheses:
| Read (500k samples) | lazybgen gs:// |
10k var (9.1 GB) | 50k var (45 GB) | 100k var (91 GB) |
|---|---|---|---|---|
| One variant | 341 ms | ~15x (5.2 s) | ~76x (26 s) | ~151x (52 s) |
| Region (2000 contiguous) | 5.93 s | 0.9x (5.2 s) | ~4x (26 s) | ~9x (52 s) |
| Scattered (1000 random) | 3.12 s | ~2x (5.2 s) | ~8x (26 s) | ~17x (52 s) |
Only the 9.1 GB download is measured (5.2 s, median of 5); the 26 s and 52 s figures scale it by byte size, since download time depends on bytes and not on what is in them.
The lazybgen column is one number per row because it does not change with the file: the same read costs the same at 10k variants and at 100k. The 0.9x is the honest edge of that: at 10k variants a 2000-variant region is a fifth of the file, and fetching a fifth of an object costs about what fetching all of it does on a fast same-region link. Partial reads pay when the slice is genuinely a slice, which is the regime biobank-scale files are in. The baseline is also best-case for the download - same-region, free egress, and not very repeatable run to run - so a laptop, cross-region or metered link widens every gap.
These are single batched reads. A loop of one-variant calls is ~17x slower for the same variants, and a read costs about the matrix it returns; see Reading many variants and Memory.
benchmarks/README.md has the full size ladder, remote and transport comparisons, peak-memory tables, and the methodology.
License
MIT
Citation
Kanai, M. et al. Population-scale multiome immune cell atlas reveals complex disease drivers. medRxiv (2025)
Contact
Masahiro Kanai (mkanai@broadinstitute.org)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lazybgen-0.2.0.tar.gz.
File metadata
- Download URL: lazybgen-0.2.0.tar.gz
- Upload date:
- Size: 4.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71f65d704b7326da55c45c63d9a956acb55b4b07fc07f5e6e4ac126ab916ab3e
|
|
| MD5 |
180e2c257f1519eb29f546846d9f8f7c
|
|
| BLAKE2b-256 |
42d654bfb6a83b666e806287945a687c7db085f8a0d68bbe8a243ae16bdf706f
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0.tar.gz:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0.tar.gz -
Subject digest:
71f65d704b7326da55c45c63d9a956acb55b4b07fc07f5e6e4ac126ab916ab3e - Sigstore transparency entry: 2718315309
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
517d5d6f8c74235b69ca75dbdd7e673a1b0228883178885d2ccaff8b3b81d389
|
|
| MD5 |
6a1c14dd0b3356b8d0a098b381cd5dbd
|
|
| BLAKE2b-256 |
13401da7e15c963577bcc1940f0156778682c2ee184185eac9c2d988f7d4f9d9
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl -
Subject digest:
517d5d6f8c74235b69ca75dbdd7e673a1b0228883178885d2ccaff8b3b81d389 - Sigstore transparency entry: 2718320516
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24721426d66484f41debb131e5a0c54ee5da8284a1522ab48f451d95ddf541bc
|
|
| MD5 |
1e8241e0d4ccff1826b8e9372af4f5c2
|
|
| BLAKE2b-256 |
938a399443819ea3a9d49e84425ddcbede5098ab155cb73aa2401f697b06e3c4
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl -
Subject digest:
24721426d66484f41debb131e5a0c54ee5da8284a1522ab48f451d95ddf541bc - Sigstore transparency entry: 2718317376
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 335.3 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ff5d9e0a3d8f9f7ad299c4a23a27f092fef9c52ca89d519bca9ce17ac0ac4c7
|
|
| MD5 |
997c81dfbcea148f77d959071fb99cd5
|
|
| BLAKE2b-256 |
13fbb752070f33a3b620156f6f8697acb22d3d1966b5b425fea9201243de387c
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
6ff5d9e0a3d8f9f7ad299c4a23a27f092fef9c52ca89d519bca9ce17ac0ac4c7 - Sigstore transparency entry: 2718321651
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c0e7a857b130d17f2d2bc9349eecb88608d78f1c2e6ba44c72a972e11e7d52a
|
|
| MD5 |
fb946bb7aed9cf2a2d1f76556bc027ee
|
|
| BLAKE2b-256 |
c37378bc886896757a47b67869f15ff87a1182352f3a157e5a50a976377132d2
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl -
Subject digest:
2c0e7a857b130d17f2d2bc9349eecb88608d78f1c2e6ba44c72a972e11e7d52a - Sigstore transparency entry: 2718316387
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90509626586175536b2e975d1198fe8697cc875f4a1912f1366317210c083eb4
|
|
| MD5 |
98ac256b0a8523cc72bc137dfbffd40e
|
|
| BLAKE2b-256 |
b57fde04c0e88f5461352701183824e7981544071b0d14a74ddf007568626d0e
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
90509626586175536b2e975d1198fe8697cc875f4a1912f1366317210c083eb4 - Sigstore transparency entry: 2718317976
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 334.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c80b920e451281058a287fd9f3cc3244438ab06e246ba9be223c42dfa3f5d1bc
|
|
| MD5 |
fd4b7a77366fce44f655b437706328b1
|
|
| BLAKE2b-256 |
945757dec32372a681285624983608739571be6afc640e5d7954beb70b04afae
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
c80b920e451281058a287fd9f3cc3244438ab06e246ba9be223c42dfa3f5d1bc - Sigstore transparency entry: 2718315894
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d1f2530182755cccd60b8eb6b326d1b7429a9ef57d7636b6691beb9225e9130
|
|
| MD5 |
fb1792d8c7653ef4b8cf94124dd9690e
|
|
| BLAKE2b-256 |
c64464383f364152192be0779496e43a820563380c55b07bdfc34358265bb1b8
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl -
Subject digest:
4d1f2530182755cccd60b8eb6b326d1b7429a9ef57d7636b6691beb9225e9130 - Sigstore transparency entry: 2718318492
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d1683e419277ebb7cfcc983327e604a86a6f7f2c2bb216e1a011c8b782e625c
|
|
| MD5 |
6c1328c716156ba30cedc746a2f59dda
|
|
| BLAKE2b-256 |
27843ac511fc98c0f9f390bcede699372f14c1c7bc2f5df0da9c7059e1f5b50f
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
4d1683e419277ebb7cfcc983327e604a86a6f7f2c2bb216e1a011c8b782e625c - Sigstore transparency entry: 2718322573
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 334.7 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95bd77419b14e8596684387b8cf3711e8ee88b0d0ee4ac688155d107904bc51c
|
|
| MD5 |
8f2aa88e028831cfe1cc5537c842bc46
|
|
| BLAKE2b-256 |
23510245bcb243689ccea263fb6362d84456f0cd9540b4b00c86b5d17d0a4f4d
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
95bd77419b14e8596684387b8cf3711e8ee88b0d0ee4ac688155d107904bc51c - Sigstore transparency entry: 2718315526
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec0ad8471bff9a4d65bc847526680bc9740bcb6cecfb0b4090c5de5112ce294e
|
|
| MD5 |
ddabc70cb36c9c0633f686abfcba04ee
|
|
| BLAKE2b-256 |
0a47b12d44e5109049f0bd480a2767386b373144350456ffeedbbbe95210d94a
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl -
Subject digest:
ec0ad8471bff9a4d65bc847526680bc9740bcb6cecfb0b4090c5de5112ce294e - Sigstore transparency entry: 2718320211
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d766b8ee0780842ea81ee4357b3cbf5f1d55afbdc5ce0bccc7370128d3505b4f
|
|
| MD5 |
0b79133ac29388466423b6e880bb7e92
|
|
| BLAKE2b-256 |
c8520d65e6928422d96240c3b9ec0895578e9e0f53214e7ba5ae3548bff76d5b
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl -
Subject digest:
d766b8ee0780842ea81ee4357b3cbf5f1d55afbdc5ce0bccc7370128d3505b4f - Sigstore transparency entry: 2718319734
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 332.8 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4975e88e057704cc97086b482680c72f5074fccaddc38514fcee5f0c0e5f148d
|
|
| MD5 |
1656f4fef6f9db369bccd8d4c23add67
|
|
| BLAKE2b-256 |
13abfc579e3d05bb3802f5789127f778a23016fda533bdc5c3d7169bab5251cf
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
4975e88e057704cc97086b482680c72f5074fccaddc38514fcee5f0c0e5f148d - Sigstore transparency entry: 2718318882
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
101a0fdd64e1057689543777f18e2f3b92a49e5b2d3a0192a864f77793a87f48
|
|
| MD5 |
1f3424cb0839efb4406d65a1b6a8c380
|
|
| BLAKE2b-256 |
b7c4aff514c06cd845897588e5f236f72be3a6c831bcad93e1cc73c3ae120d0f
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl -
Subject digest:
101a0fdd64e1057689543777f18e2f3b92a49e5b2d3a0192a864f77793a87f48 - Sigstore transparency entry: 2718316985
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32512f9a47fa53c8ea0f0b67a27397d2cd17a3c5032f6150f0e9d4896c9cc29e
|
|
| MD5 |
b2c250054136784c87b68c1b0bff66d5
|
|
| BLAKE2b-256 |
1db1143e92573d3395e8eefd7221df0aa17cab5ccfce3d79cd83ee9165252c24
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl -
Subject digest:
32512f9a47fa53c8ea0f0b67a27397d2cd17a3c5032f6150f0e9d4896c9cc29e - Sigstore transparency entry: 2718320879
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazybgen-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: lazybgen-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 334.0 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e73ee8267f8499de20a1040ae8c19ed3f58d4898a0ca10634d0744f66dab7c66
|
|
| MD5 |
de7cdfe9423df824673e878d30cb7823
|
|
| BLAKE2b-256 |
c491d015ea5ebb5d6edc169d27ea9cd2ad1c5c5eef9bd46d5562f67e5a10ea5a
|
Provenance
The following attestation bundles were made for lazybgen-0.2.0-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on mkanai/lazybgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazybgen-0.2.0-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
e73ee8267f8499de20a1040ae8c19ed3f58d4898a0ca10634d0744f66dab7c66 - Sigstore transparency entry: 2718316768
- Sigstore integration time:
-
Permalink:
mkanai/lazybgen@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkanai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a5d4d2d6250708b368123ff5540c91e0439c92a1 -
Trigger Event:
release
-
Statement type: