""" Carregador de modelos de avaliação. Carrega arquivos .dai via joblib. """ from pathlib import Path from typing import Optional import joblib from .model_data import ModelData def load_model(model_path: Path) -> Optional[ModelData]: """ Carrega um modelo de avaliação a partir de uma pasta. Args: model_path: Caminho para a pasta do modelo (contendo modelo.dai) Returns: ModelData com os dados carregados, ou None se falhar """ dai_path = model_path / "modelo.dai" if not dai_path.exists(): return None try: data = joblib.load(dai_path) except Exception as e: print(f"Erro ao carregar {dai_path}: {e}") return None model = ModelData( nome=model_path.name, path=model_path, xy_preview=data.get('Xy_preview_out_coords'), top_x_esc=data.get('top_X_esc'), top_y_esc=data.get('top_y_esc'), estatisticas=data.get('estatisticas'), tabelas_coef=data.get('tabelas_coef'), tabelas_obs_calc=data.get('tabelas_obs_calc'), modelos_resumos=data.get('modelos_resumos', {}), modelos_sm=data.get('modelos_sm'), formatted_top_transformation_info=data.get('formatted_top_transformation_info', []), graf_model=data.get('graf_model', ''), ) return model def load_model_by_name(name: str, models_dir: Path) -> Optional[ModelData]: """ Carrega um modelo pelo nome. Args: name: Nome do modelo (nome da pasta) models_dir: Diretório raiz dos modelos Returns: ModelData com os dados carregados, ou None se não encontrar """ model_path = models_dir / name return load_model(model_path)