From fac9a70548fc491bff9ac10e1571448d72cfc118 Mon Sep 17 00:00:00 2001 From: Gustavo Henrique Santos Souza de Miranda Date: Wed, 29 Oct 2025 03:04:09 -0300 Subject: [PATCH] Add argument parsing to `Application` class and integrate setup in entry point --- src/metar_navigate/application.py | 32 +++++++++++++++++++++++++++++-- src/metar_navigate/command.py | 3 ++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/metar_navigate/application.py b/src/metar_navigate/application.py index 23ac240..e38379d 100644 --- a/src/metar_navigate/application.py +++ b/src/metar_navigate/application.py @@ -1,7 +1,35 @@ +import argparse +import sys class Application: def __init__(self): - pass + self.parser = None + self.args = None + + def setup(self): + self._validate_args() + + def _validate_args(self): + self.parser = argparse.ArgumentParser() + self.parser.add_argument("--no-tui", action="store_true", help="disables the TUI") + self.parser.add_argument("--detailed", action="store_true", help="displays more detailed METAR Breakdown " + "(Only available with --no-tui flag)") + self.parser.add_argument("-t", "--type", choices=["TAF", "METAR"], default="METAR", help="Select the Type " + "of message (Only Available with" + " --no-tui flag)") + self.parser.add_argument("ICAO", nargs='?', type=str.upper,help="ICAO code of airport (required with --no-tui flag)") + + self.args = self.parser.parse_args() + + if self.args.no_tui and not self.args.ICAO: + self.parser.error("--no-tui requires an ICAO code") + if self.args.ICAO and not self.args.no_tui: + self.parser.error("ICAO code only required with --no-tui flag") + if not self.args.no_tui and self.args.detailed: + self.parser.error("--detailed flag only available with --no-tui flag") + if not self.args.no_tui and ('--type' in sys.argv or '-t' in sys.argv): + self.parser.error("--type or -t flag only available with --no-tui flag") + def run(self): - pass \ No newline at end of file + pass diff --git a/src/metar_navigate/command.py b/src/metar_navigate/command.py index 587d2ca..13f44f5 100644 --- a/src/metar_navigate/command.py +++ b/src/metar_navigate/command.py @@ -2,4 +2,5 @@ from metar_navigate import Application def main(): app = Application() - print("Hello World") \ No newline at end of file + app.setup() + app.run() \ No newline at end of file