# -*- coding: utf-8 -*-
"""
@author: yq
@time: 2024/11/1
@desc: 数据处理配置类
"""
import json
import os

from commom import GeneralException
from enums import ResultCodesEnum


class DataProcessConfigEntity():
    def __init__(self, y_column: str, fill_method: str, split_method: str):
        # 定义y变量
        self._y_column = y_column
        # 缺失值填充方法
        self._fill_method = fill_method
        # 数据划分方法
        self._split_method = split_method

    @property
    def y_column(self):
        return self._y_column

    @property
    def fill_method(self):
        return self._fill_method

    @property
    def split_method(self):
        return self._split_method

    @staticmethod
    def from_config(config_path: str):
        """
        从配置文件生成实体类
        """
        if os.path.exists(config_path):
            with open(config_path, mode="r", encoding="utf-8") as f:
                j = json.loads(f.read())
        else:
            raise GeneralException(ResultCodesEnum.NOT_FOUND, message=f"指配置文件【{config_path}】不存在")

        return DataProcessConfigEntity(**j)


if __name__ == "__main__":
    pass