from __future__ import annotations import typer from .formatters import TJWaterGroup app = typer.Typer(help="TJWater agent CLI", add_completion=False, no_args_is_help=True, cls=TJWaterGroup) network_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) component_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) component_option_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) simulation_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_leakage_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_leakage_schemes_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_burst_detection_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_burst_detection_schemes_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_burst_location_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_burst_location_schemes_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_risk_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) analysis_sensor_placement_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_timeseries_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_timeseries_realtime_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_timeseries_scheme_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_timeseries_scada_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_timeseries_composite_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_scada_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) data_scheme_app = typer.Typer(no_args_is_help=True, cls=TJWaterGroup) app.add_typer(network_app, name="network") app.add_typer(component_app, name="component") component_app.add_typer(component_option_app, name="option") app.add_typer(simulation_app, name="simulation") app.add_typer(analysis_app, name="analysis") analysis_app.add_typer(analysis_sensor_placement_app, name="sensor-placement") analysis_app.add_typer(analysis_leakage_app, name="leakage") analysis_leakage_app.add_typer(analysis_leakage_schemes_app, name="schemes") analysis_app.add_typer(analysis_burst_detection_app, name="burst-detection") analysis_burst_detection_app.add_typer(analysis_burst_detection_schemes_app, name="schemes") analysis_app.add_typer(analysis_burst_location_app, name="burst-location") analysis_burst_location_app.add_typer(analysis_burst_location_schemes_app, name="schemes") analysis_app.add_typer(analysis_risk_app, name="risk") app.add_typer(data_app, name="data") data_app.add_typer(data_timeseries_app, name="timeseries") data_timeseries_app.add_typer(data_timeseries_realtime_app, name="realtime") data_timeseries_app.add_typer(data_timeseries_scheme_app, name="scheme") data_timeseries_app.add_typer(data_timeseries_scada_app, name="scada") data_timeseries_app.add_typer(data_timeseries_composite_app, name="composite") data_app.add_typer(data_scada_app, name="scada") data_app.add_typer(data_scheme_app, name="scheme") GROUP_HELP_APPS: list[tuple[typer.Typer, tuple[str, ...]]] = [ (network_app, ("network",)), (component_app, ("component",)), (component_option_app, ("component", "option")), (simulation_app, ("simulation",)), (analysis_app, ("analysis",)), (analysis_sensor_placement_app, ("analysis", "sensor-placement")), (analysis_leakage_app, ("analysis", "leakage")), (analysis_leakage_schemes_app, ("analysis", "leakage", "schemes")), (analysis_burst_detection_app, ("analysis", "burst-detection")), (analysis_burst_detection_schemes_app, ("analysis", "burst-detection", "schemes")), (analysis_burst_location_app, ("analysis", "burst-location")), (analysis_burst_location_schemes_app, ("analysis", "burst-location", "schemes")), (analysis_risk_app, ("analysis", "risk")), (data_app, ("data",)), (data_timeseries_app, ("data", "timeseries")), (data_timeseries_realtime_app, ("data", "timeseries", "realtime")), (data_timeseries_scheme_app, ("data", "timeseries", "scheme")), (data_timeseries_scada_app, ("data", "timeseries", "scada")), (data_timeseries_composite_app, ("data", "timeseries", "composite")), (data_scada_app, ("data", "scada")), (data_scheme_app, ("data", "scheme")), ] TOP_LEVEL_COMMANDS = {"help", "network", "component", "simulation", "analysis", "data"}