import pandas as pd
import numpy as np
from abc import ABC, abstractmethod
from typing import Optional, List, Dict, Any

class DataLoader(ABC):
    """数据加载器基类"""
    @abstractmethod
    def load(self, path: str, **kwargs) -> pd.DataFrame:
        pass

class CSVLoader(DataLoader):
    """从 CSV 文件加载数据"""
    def load(self, path: str, **kwargs) -> pd.DataFrame:
        """
        加载 CSV 文件，返回 DataFrame。
        支持 pandas 的 read_csv 参数（如 header, index_col 等）。
        """
        return pd.read_csv(path, **kwargs)