42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
"""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)
|
|
|