60 lines
2.5 KiB
Python
60 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# IMPORTS
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
from argparse import ArgumentError
|
|
from src.local.typing import *;
|
|
|
|
from src.core.log import *;
|
|
from src.core.utils import DedentIgnoreFirstLast;
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# GLOBAL VARIABLES
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
parser = None;
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# METHODS
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
def GetArgumentParser() -> argparse.ArgumentParser:
|
|
global parser;
|
|
if not isinstance(parser, argparse.ArgumentParser):
|
|
parser = argparse.ArgumentParser(
|
|
prog='code/main.py',
|
|
description=DedentIgnoreFirstLast('''
|
|
\033[93;1mBeschreibung:\033[0m
|
|
\033[93;2mEin Programm, das verschiedene Algorithmen aus dem Kurs AlgoDat I testet.\033[0m
|
|
'''),
|
|
formatter_class=argparse.RawTextHelpFormatter,
|
|
);
|
|
parser.add_argument('mode',
|
|
nargs=1,
|
|
choices=['version', 'help', 'run'],
|
|
help=DedentIgnoreFirstLast('''
|
|
help = Hilfsanleitung anzeigen.
|
|
version = Version anzeigen.
|
|
run = Algorithmen ausführen.
|
|
'''),
|
|
);
|
|
parser.add_argument('--it', action='store_true', help='Startet das Programm im interaktiven Modus.')
|
|
parser.add_argument('-q', '--quiet', action='store_true', help='Blendet alle Konsole-Messages aus.')
|
|
parser.add_argument('--debug', action='store_true', help='Blendet Debugging-Befehle ein.')
|
|
parser.add_argument('--checks', nargs=1, type=str, default=['False'],
|
|
help=DedentIgnoreFirstLast('''
|
|
(bool) Ob vor und nach Ausführung von Algorithmen Checks
|
|
auf Inputs/Outputs ausgeführt werden sollen.
|
|
'''),
|
|
),
|
|
parser.add_argument('--colour', nargs=1, type=str, default=['False'], help='(bool) Ob Logging färblich angezeigt wird.')
|
|
parser.add_argument('--config', nargs=1, type=str, help='(string) Pfad zur Configdatei (nur für run Endpunkt).');
|
|
return parser;
|
|
|
|
def GetArgumentsFromCli(*cli_args: str) -> argparse.Namespace:
|
|
parser = GetArgumentParser();
|
|
return parser.parse_args(cli_args);
|