citygrid-policy-driven-fede.../citygrid/adapters/water_pump_controller.py

21 lines
667 B
Python

from __future__ import annotations
from citygrid import LocalProblem
class WaterPumpControllerAdapter:
def __init__(self, adapter_id: str = "water-pump-1"):
self.adapter_id = adapter_id
def build_local_problem(self) -> LocalProblem:
return LocalProblem(
id="lp-water-1",
domain="water",
assets=["WaterPump-Station-1"],
objective={"maximize_service": {"priority": 1}},
constraints={"flow": {"min": 0.0, "max": 100.0}},
solver_hint=None,
)
def receive_delta(self, delta: dict) -> dict:
return {"ack": True, "delta_version": delta.get("version", 0)}