PCSWMM-MCP-Server / pcswmm_ai /simulation.py
razaali10's picture
Upload 22 files
f7a6add verified
Raw
History Blame Contribute Delete
1.12 kB
from __future__ import annotations
from datetime import datetime
from typing import Any
from .project import ProjectService
from .utils import safe_count, safe_text
class SimulationService:
def __init__(self, pcpy: Any, project: ProjectService):
self._pcpy = pcpy
self._project = project
def run(self) -> dict[str, Any]:
self._project.require_open()
started = datetime.now()
self._pcpy.SWMM.run()
finished = datetime.now()
try:
graph_file_count = safe_count(self._pcpy.Graph.Files)
except Exception:
graph_file_count = 0
return {
"status": "completed",
"started_at": started.isoformat(timespec="seconds"),
"finished_at": finished.isoformat(timespec="seconds"),
"elapsed_seconds": round((finished - started).total_seconds(), 3),
"run_status": safe_text(self._pcpy.SWMM.RunStatus),
"graph_file_count": graph_file_count,
}
def refresh_output(self):
self._project.require_open()
self._pcpy.SWMM.refresh_output()