"""
bunbun — Fast, unified genotype parser for PLINK, VCF, PLINK2, and BGEN formats.

Usage
-----
>>> import bunbun

>>> # Full read (small datasets)
>>> data = bunbun.read("cohort.bed")
>>> data.samples    # polars.DataFrame
>>> data.variants   # polars.DataFrame
>>> data.dosages    # numpy.ndarray (n_samples × n_variants)

>>> # Streaming (biobank-scale)
>>> for chunk in bunbun.stream("ukb.bgen", chunk_size=5000):
...     chunk.dosages    # numpy array (n_samples × ≤5000)
...     chunk.progress   # 0.0 → 1.0

Supported formats
-----------------
- PLINK 1.x  (.bed/.bim/.fam)
- PLINK 2    (.pgen/.pvar/.psam)
- VCF        (.vcf/.vcf.gz)
- BGEN       (.bgen/.sample)
"""

from __future__ import annotations

from bunbun._native import (
    GenotypeChunk,
    GenotypeData,
    GenotypeStream,
    read,
    read_bgen,
    read_plink,
    read_plink2,
    read_vcf,
    stream,
    stream_bgen,
    stream_plink,
    stream_plink2,
    stream_vcf,
    supported_formats,
)

__all__ = [
    "GenotypeData",
    "GenotypeChunk",
    "GenotypeStream",
    "read",
    "read_plink",
    "read_vcf",
    "read_plink2",
    "read_bgen",
    "stream",
    "stream_plink",
    "stream_vcf",
    "stream_plink2",
    "stream_bgen",
    "supported_formats",
]

__version__ = "0.1.0"