"""Compatibility wrappers for daily feature computation and validation.""" from pathlib import Path from typing import Iterable import pandas as pd from pipeline.derived.compute import ( DERIVED_KEY_COLUMNS, compute_derived, read_derived_frames, validate_derived_frame, ) FEATURE_KEY_COLUMNS = DERIVED_KEY_COLUMNS def validate_feature_frame(features: pd.DataFrame) -> pd.DataFrame: """Validate and normalize a legacy daily feature frame.""" return validate_derived_frame(features) def compute_feature( minute: pd.DataFrame, feature_type: str, daily: pd.DataFrame | None = None, **params, ) -> pd.DataFrame: """Compute one registered feature through the derived-data registry.""" return compute_derived( derived_type=feature_type, daily=daily, minute=minute, **params, ) def read_feature_frames(feature_paths: Iterable[str | Path]) -> list[pd.DataFrame]: """Read and validate feature/derived-data parquet files.""" return read_derived_frames(feature_paths)