"""Algorithm package with side-effect-free, lazy compatibility exports.""" from importlib import import_module from typing import Any _EXPORT_MODULES = { "flow_data_clean": "app.algorithms.cleaning", "pressure_data_clean": "app.algorithms.cleaning", "pressure_sensor_placement_sensitivity": "app.algorithms.sensor", "pressure_sensor_placement_kmeans": "app.algorithms.sensor", "valve_isolation_analysis": "app.algorithms.isolation.valve", "LeakageIdentifier": "app.algorithms.leakage", "PipelineHealthAnalyzer": "app.algorithms.health", "run_burst_location": "app.algorithms.burst_location", **{ name: "app.algorithms.simulation.scenarios" for name in ( "convert_to_local_unit", "burst_analysis", "valve_close_analysis", "flushing_analysis", "contaminant_simulation", "age_analysis", "pressure_regulation", ) }, } __all__ = list(_EXPORT_MODULES) def __getattr__(name: str) -> Any: try: module_name = _EXPORT_MODULES[name] except KeyError as exc: raise AttributeError(f"module {__name__!r} has no attribute {name!r}") from exc value = getattr(import_module(module_name), name) globals()[name] = value return value def __dir__() -> list[str]: return sorted({*globals(), *__all__})