from typing import Optional from ecologits.impacts import Impacts from constants import MODEL_MAP class EcoStore: _instance: Optional["EcoStore"] = None # model_type -> [Impacts] models_eco_impact_map = dict() def __new__(cls): if cls._instance is None: cls._instance = super(EcoStore, cls).__new__(cls) for model_type in MODEL_MAP: cls._instance.models_eco_impact_map[model_type] = [] return cls._instance def add_impacts(self, impact: Impacts, model_type: str): self.models_eco_impact_map[model_type].append(impact) def get_eco(self): return self.models_eco_impact_map