Files
Enelix-EMS/services/netplan-v4/acceptance/forecast-src/methods/common.py
T

33 lines
808 B
Python

import os
import joblib
MODEL_DIR = "/app/data/models"
def model_path(aid, forecast_id):
os.makedirs(MODEL_DIR, exist_ok=True)
return os.path.join(MODEL_DIR, f"forecast_var_{forecast_id}_{aid}.pkl")
def save_model(aid, forecast_id, artifact):
path = model_path(aid, forecast_id)
tmp_path = f"{path}.tmp.{os.getpid()}"
try:
joblib.dump(artifact, tmp_path)
os.replace(tmp_path, path)
finally:
if os.path.exists(tmp_path):
os.remove(tmp_path)
return path
def load_model(aid, forecast_id):
path = model_path(aid, forecast_id)
if not os.path.exists(path):
return None
try:
return joblib.load(path)
except Exception as exc:
print(f"Modell {path} konnte nicht geladen werden: {exc}")
return None