Add exit_metrics_logging/src/exit_metrics_logging/cli.py
This commit is contained in:
parent
3594381ea4
commit
3e8795ebe7
1 changed files with 41 additions and 0 deletions
41
exit_metrics_logging/src/exit_metrics_logging/cli.py
Normal file
41
exit_metrics_logging/src/exit_metrics_logging/cli.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
import argparse
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from exit_metrics_logging import core
|
||||
|
||||
def _build_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="CLI zur Protokollierung von Exit-Metriken für einen Run."
|
||||
)
|
||||
parser.add_argument("--run_id", required=True, type=str, help="Eindeutiger Run-Identifier.")
|
||||
parser.add_argument("--warn_rate", required=True, type=float, help="Prozentualer Anteil an Warnungen.")
|
||||
parser.add_argument("--unknown_rate", required=True, type=float, help="Prozentualer Anteil unbekannter Zustände.")
|
||||
parser.add_argument("--delta_t", required=True, type=float, help="Gemessene Zeitdifferenz in Sekunden.")
|
||||
return parser
|
||||
|
||||
def main() -> None:
|
||||
parser = _build_parser()
|
||||
args = parser.parse_args()
|
||||
|
||||
# Eingabevalidierung
|
||||
if not args.run_id:
|
||||
parser.error("--run_id darf nicht leer sein.")
|
||||
for param_name in ("warn_rate", "unknown_rate", "delta_t"):
|
||||
val = getattr(args, param_name)
|
||||
if not isinstance(val, float):
|
||||
parser.error(f"{param_name} muss ein Float sein.")
|
||||
|
||||
try:
|
||||
core.log_metrics(
|
||||
run_id=args.run_id,
|
||||
warn_rate=args.warn_rate,
|
||||
unknown_rate=args.unknown_rate,
|
||||
delta_t=args.delta_t
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"Fehler bei der Protokollierung: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in a new issue