from __future__ import annotations
import json
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING:
from r2x_core import PluginContext
class ReEDSConfig:
def __init__(
self,
weather_year: int | None = None,
solve_year: int | None = None,
**kwargs: Any,
) -> None:
self.weather_year = weather_year
self.solve_year = solve_year
self.extra = kwargs
class ReEDSParser:
def __init__(
self, config: ReEDSConfig | None = None, data_store: Any | None = None, **_: Any
) -> None:
self.config = config
self.data_store = data_store
@classmethod
def from_context(cls, ctx: PluginContext) -> ReEDSParser:
return cls(config=ctx.config, data_store=ctx.store)
def build_system(self) -> str:
return '{"system": "reeds", "status": "ok"}'
def no_stdin_function() -> dict[str, str]:
return {"system": "reeds", "status": "function-no-stdin"}
def with_system_function(system) -> dict[str, str]:
data = getattr(system, "data", {})
if isinstance(data, str):
try:
data = json.loads(data)
except json.JSONDecodeError:
data = {}
source = data.get("system", "unknown")
return {"system": source, "status": "function-with-system"}