"""Column contracts for pipeline parquet files.""" from typing import Final # Required columns for data parquet files (daily bars, alternative data, etc.) DATA_COLUMNS: Final[list[str]] = [ "symbol_id", # str: internal code like 'sh600000' "symbol_name", # str: stock name like '浦发银行' "date", # date "open", # float64 "high", # float64 "low", # float64 "close", # float64 "volume", # float64 (shares) "amount", # float64 (turnover in yuan) ] # Required columns for alpha parquet files. # Alphas are position WEIGHTS: positive=long, negative=short. ALPHA_COLUMNS: Final[list[str]] = [ "symbol_id", # str: matches DATA_COLUMNS symbol_id "date", # date: aligned with data dates "alpha_name", # str: identifies which alpha (e.g. 'reversal_5d') "weight", # float64: position weight, signed ] # Required columns for combo parquet files. COMBO_COLUMNS: Final[list[str]] = [ "symbol_id", # str "date", # date "combo_name", # str: identifies which combo (e.g. 'equal_weight') "weight", # float64: combined weight, signed ]