33 lines
1.4 KiB
Python
33 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
"""Tiny demonstration harness for CityGrid MVP interop."""
|
|
|
|
from citygrid.adapters.der_controller import DerControllerAdapter
|
|
from citygrid.adapters.water_pump_controller import WaterPumpControllerAdapter
|
|
from citygrid.bridge.energi_bridge import EnergiBridge
|
|
from citygrid import LocalProblem, SharedVariables
|
|
from citygrid.registry.registry import GoCRegistry
|
|
|
|
|
|
def run_demo():
|
|
der = DerControllerAdapter()
|
|
water = WaterPumpControllerAdapter()
|
|
lp_der = der.build_local_problem()
|
|
lp_water = water.build_local_problem()
|
|
# Instantiate a trivial bridge mapping to canonical form
|
|
canon_der = EnergiBridge.to_canonical({"id": lp_der.id, "domain": lp_der.domain, "assets": lp_der.assets, "objective": lp_der.objective, "constraints": lp_der.constraints})
|
|
canon_water = EnergiBridge.to_canonical({"id": lp_water.id, "domain": lp_water.domain, "assets": lp_water.assets, "objective": lp_water.objective, "constraints": lp_water.constraints})
|
|
print("Canonical Der LP:", canon_der)
|
|
print("Canonical Water LP:", canon_water)
|
|
|
|
# Simple registry usage
|
|
reg = GoCRegistry()
|
|
reg.register_adapter("der-controller-1", ["electricity"], "v0.1", repo=None)
|
|
reg.register_adapter("water-pump-1", ["water"], "v0.1", repo=None)
|
|
for a in reg.list_adapters():
|
|
print("Registered adapter:", a.adapter_id, a.domains)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_demo()
|