You need to sign in or sign up before continuing.
Commit 3974a5de authored by Eric Duminil's avatar Eric Duminil
Browse files

UnknownWorkflow too

parent 3524c064
...@@ -7,6 +7,7 @@ from .photovoltaic import PhotovoltaicResults ...@@ -7,6 +7,7 @@ from .photovoltaic import PhotovoltaicResults
from .providers import Providers from .providers import Providers
from .solar_potential import SolarPotentialResults from .solar_potential import SolarPotentialResults
from .energy_grid import EnergyGridResults from .energy_grid import EnergyGridResults
from .unknown_workflow import UnknownWorkflowResults
def create_simstadt_results(description: str, output_files: list) -> SimStadtResults: def create_simstadt_results(description: str, output_files: list) -> SimStadtResults:
...@@ -27,6 +28,7 @@ __all__ = [ ...@@ -27,6 +28,7 @@ __all__ = [
"LoadProfileResults", "LoadProfileResults",
"SolarPotentialResults", "SolarPotentialResults",
"GreenWaterResults", "GreenWaterResults",
"UnknownWorkflowResults",
"create_simstadt_results", "create_simstadt_results",
"detect_decimal", "detect_decimal",
"get_workflow_provider", "get_workflow_provider",
......
...@@ -242,6 +242,7 @@ class SimStadtResults(ABC): ...@@ -242,6 +242,7 @@ class SimStadtResults(ABC):
@classmethod @classmethod
def create(cls, provider: str, **kwargs) -> "SimStadtResults": def create(cls, provider: str, **kwargs) -> "SimStadtResults":
if provider not in cls._registry: if provider not in cls._registry:
# TODO: Warning, and return GenericSimStadtResult instead? from .unknown_workflow import UnknownWorkflowResults
raise ValueError(f"Unknown workflow provider: {provider}") logger.warning("Unknown workflow provider: %s. Returning UnknownWorkflowResults.", provider)
return UnknownWorkflowResults(**kwargs)
return cls._registry[provider](**kwargs) return cls._registry[provider](**kwargs)
from dataclasses import dataclass
from typing import ClassVar
import pandas as pd
from .base import SimStadtResults
from .kpi import KPI
@dataclass(repr=False)
class UnknownWorkflowResults(SimStadtResults):
"""Fallback for unrecognized workflow providers."""
supported_providers: ClassVar[list[str]] = []
csv_identifier: ClassVar[str] = ""
def _parse_results(self) -> pd.DataFrame:
return pd.DataFrame()
@property
def kpis(self) -> list[KPI]:
return []
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment