"""
snapparquet — small helpers for fast Parquet workflows: column pruning, optional
integer range filters and tuple-based predicate pushdown via PyArrow dataset,
optional pandas 2 ``ArrowDtype`` conversion, dictionary→categorical decoding,
and footer-only schema reads for discovery.

Typical entry points: :func:`read_tabular`, :func:`read_tabular_many`,
:func:`schema_column_names`, :func:`build_filter`.
"""

from snapparquet._version import __version__
from snapparquet.filters import (
    FilterSpec,
    apply_filters_pandas,
    build_filter,
)
from snapparquet.readers import (
    read_csv,
    read_parquet,
    read_parquet_many,
    read_tabular,
    read_tabular_many,
)
from snapparquet.schema import (
    column_is_integer_type,
    intersect_columns,
    norm_col,
    schema_column_names,
    schema_has_all,
    schema_matches_any_group,
)

__all__ = [
    "__version__",
    "FilterSpec",
    "apply_filters_pandas",
    "build_filter",
    "column_is_integer_type",
    "intersect_columns",
    "norm_col",
    "read_csv",
    "read_parquet",
    "read_parquet_many",
    "read_tabular",
    "read_tabular_many",
    "schema_column_names",
    "schema_has_all",
    "schema_matches_any_group",
]
