import argparse import sys import rich from metar_navigate.utils import ConfigManager class Application: def __init__(self): self.parser = None self.args = None self.config = ConfigManager() def setup(self): self._validate_args() if self.config.read_config() is None: rich.print("[bold red]No config file found. Please run metarNavigate --configure[/bold red] ") 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("--configure", "-c" ,action="store_true", help="runs the configuration wizard") 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.configure and self.args.ICAO: self.parser.error("--configure não aceita código ICAO") if self.args.configure and self.args.detailed: self.parser.error("--configure não pode ser usado com --detailed") if self.args.configure and ('--type' in sys.argv or '-t' in sys.argv): self.parser.error("--configure não pode ser usado com --type/-t") if self.args.no_tui and not self.args.configure and not self.args.ICAO: self.parser.error("--no-tui requer código ICAO (exceto quando usado com --configure)") if self.args.ICAO and not self.args.no_tui: self.parser.error("Código ICAO só pode ser usado com --no-tui") if self.args.detailed and not self.args.no_tui: self.parser.error("--detailed requer --no-tui") if not self.args.no_tui and ('--type' in sys.argv or '-t' in sys.argv): self.parser.error("--type/-t requer --no-tui") def run(self): pass