from polars.datatypes.classes import (
    FloatType,
    IntegerType,
    NestedType,
    NumericType,
    SignedIntegerType,
    TemporalType,
    UnsignedIntegerType,
)

from polars_validate.base import ValidationError, Validator
from polars_validate.constants import THIS
from polars_validate.frame import (
    CallableValidator,
    ColumnValidator,
    ExpressionValidator,
    UniqueTogether,
    ValidatorGroup,
)
from polars_validate.schema import (
    FrameValidators,
    schema_to_series_validators,
    schema_to_validators,
    validate,
)
from polars_validate.series import (
    ContainsPattern,
    IsBetween,
    IsIn,
    IsNotNull,
    SeriesCallableValidator,
    SeriesExpressionValidator,
    SeriesValidator,
    SeriesValidatorGroup,
    TypeValidator,
)

__version__ = "0.1.0"

__all__ = [
    # ---
    "FloatType",
    "IntegerType",
    "NestedType",
    "NumericType",
    "SignedIntegerType",
    "TemporalType",
    "UnsignedIntegerType",
    # ----
    "ValidationError",
    "Validator",
    # ---
    "THIS",
    # ---
    "CallableValidator",
    "ColumnValidator",
    "ExpressionValidator",
    "UniqueTogether",
    "ValidatorGroup",
    # ---
    "FrameValidators",
    "schema_to_series_validators",
    "schema_to_validators",
    "validate",
    # ---
    "ContainsPattern",
    "IsBetween",
    "IsIn",
    "IsNotNull",
    "SeriesCallableValidator",
    "SeriesExpressionValidator",
    "SeriesValidator",
    "SeriesValidatorGroup",
    "TypeValidator",
]
