Spaces:
Configuration error
Configuration error
| from __future__ import annotations | |
| from typing import Any | |
| from .capabilities import ModelCapabilityService | |
| from .collections import CollectionService | |
| from .engineering import EngineeringReviewService | |
| from .hydraulics import HydraulicResultReviewService | |
| from .hydrology import HydrologyReviewService | |
| from .layers import LayerService | |
| from .objects import ObjectService | |
| from .pond import PondReviewService | |
| from .project import ProjectService | |
| from .qaqc import QAQCService | |
| from .result_queries import ResultQueryService | |
| from .results import ResultService | |
| from .review_engine import GenericReviewEngine | |
| from .scenarios import ScenarioReviewService | |
| from .simulation import SimulationService | |
| from .storage import StorageReviewService | |
| from .topology import TopologyService | |
| class PCSWMMClient: | |
| """Generic facade over PCSWMM's injected ``pcpy`` object.""" | |
| def __init__(self, pcpy: Any): | |
| if pcpy is None: | |
| raise ValueError("The injected PCSWMM pcpy object is required.") | |
| self.pcpy = pcpy | |
| self.project = ProjectService(pcpy) | |
| self.collections = CollectionService(pcpy, self.project) | |
| self.layers = LayerService(pcpy, self.project) | |
| self.objects = ObjectService(self.collections) | |
| self.simulation = SimulationService(pcpy, self.project) | |
| self.results = ResultService(pcpy, self.project) | |
| self.result_queries = ResultQueryService(self.results) | |
| self.qaqc = QAQCService(self.layers) | |
| self.topology = TopologyService(self.objects) | |
| self.engineering = EngineeringReviewService( | |
| self.layers, | |
| self.objects, | |
| self.topology, | |
| ) | |
| self.hydrology = HydrologyReviewService( | |
| self.layers, | |
| self.objects, | |
| ) | |
| self.storage = StorageReviewService(self.objects) | |
| self.pond = PondReviewService(self.objects) | |
| self.scenarios = ScenarioReviewService(self.collections) | |
| self.hydraulics = HydraulicResultReviewService( | |
| self.collections, | |
| self.result_queries, | |
| ) | |
| self.capabilities = ModelCapabilityService(self.collections) | |
| self.review_engine = GenericReviewEngine( | |
| self.project, | |
| self.collections, | |
| self.capabilities, | |
| self.topology, | |
| self.engineering, | |
| self.hydrology, | |
| self.storage, | |
| self.scenarios, | |
| ) | |
| # Backward-compatible alias. | |
| self.review_report = self.review_engine | |
| def health(self) -> dict[str, Any]: | |
| return { | |
| "pcpy_type": str(type(self.pcpy)), | |
| "project_open": self.project.is_open, | |
| "project": self.project.summary() if self.project.is_open else None, | |
| "capabilities": ( | |
| self.capabilities.detect() | |
| if self.project.is_open | |
| else None | |
| ), | |
| } | |