"""FactorMiner data pipeline: loading, preprocessing, and tensor construction."""

from src.factorminer.data.loader import (
    OHLCV_COLUMNS,
    REQUIRED_COLUMNS,
    load_market_data,
    load_multiple,
    to_numpy,
)
from src.factorminer.data.preprocessor import (
    PreprocessConfig,
    compute_derived_features,
    compute_returns,
    compute_vwap,
    cross_sectional_standardise,
    fill_missing,
    flag_halts,
    mask_halts,
    preprocess,
    quality_check,
    winsorise,
)
from src.factorminer.data.tensor_builder import (
    DEFAULT_FEATURES,
    TargetSpec,
    TensorConfig,
    TensorDataset,
    build_pipeline,
    build_tensor,
    compute_target,
    compute_targets,
    sample_assets,
    temporal_split,
)

__all__ = [
    # loader
    "OHLCV_COLUMNS",
    "REQUIRED_COLUMNS",
    "load_market_data",
    "load_multiple",
    "to_numpy",
    # mock_data
    # preprocessor
    "PreprocessConfig",
    "compute_derived_features",
    "compute_returns",
    "compute_vwap",
    "cross_sectional_standardise",
    "fill_missing",
    "flag_halts",
    "mask_halts",
    "preprocess",
    "quality_check",
    "winsorise",
    # tensor_builder
    "DEFAULT_FEATURES",
    "TargetSpec",
    "TensorConfig",
    "TensorDataset",
    "build_pipeline",
    "build_tensor",
    "compute_target",
    "compute_targets",
    "sample_assets",
    "temporal_split",
]
