77 lines
4.4 KiB
Python
77 lines
4.4 KiB
Python
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"}
|