diff --git a/pfbudget/__main__.py b/pfbudget/__main__.py index e5c0303..4f3f2f9 100644 --- a/pfbudget/__main__.py +++ b/pfbudget/__main__.py @@ -6,10 +6,13 @@ if __name__ == "__main__": args = vars(argparser.parse_args()) assert "op" in args, "No pfbudget.Operation selected" - op: pfbudget.Operation = args["op"] + op: pfbudget.Operation = args.pop("op") assert "database" in args, "No database selected" - db = args["database"] + db = args.pop("database") + + assert "verbose" in args, "No verbose level specified" + verbosity = args.pop("verbose") params = None match (op): @@ -146,4 +149,4 @@ if __name__ == "__main__": assert "group" in args, "argparser ill defined" params = [pfbudget.types.CategoryGroup(group) for group in args["group"]] - pfbudget.Manager(db, args).action(op, params) + pfbudget.Manager(db, verbosity, args).action(op, params) diff --git a/pfbudget/cli/runnable.py b/pfbudget/cli/runnable.py index 18334d4..8d62abc 100644 --- a/pfbudget/cli/runnable.py +++ b/pfbudget/cli/runnable.py @@ -40,12 +40,7 @@ def argparser() -> argparse.ArgumentParser: help="select current database", default=DEFAULT_DB, ) - universal.add_argument( - "-q", "--quiet", action="store_true", help="reduces the amount of verbose" - ) - universal.add_argument( - "-v", "--verbose", action="store_true", help="increases the amount of verbose" - ) + universal.add_argument("-v", "--verbose", action="count", default=0) period = argparse.ArgumentParser(add_help=False).add_mutually_exclusive_group() period.add_argument( diff --git a/pfbudget/core/manager.py b/pfbudget/core/manager.py index d8bc431..f143951 100644 --- a/pfbudget/core/manager.py +++ b/pfbudget/core/manager.py @@ -18,13 +18,16 @@ from pfbudget.cli.runnable import download, parse class Manager: - def __init__(self, db: str, args: dict): + def __init__(self, db: str, verbosity: int = 0, args: dict = {}): self._args = args - print(args) self._db = db + self._verbosity = verbosity def action(self, op: Operation, params: list): + if self._verbosity > 0: + print(f"op={op}, params={params}") + match (op): case Operation.Init: pass @@ -141,7 +144,7 @@ class Manager: @property def db(self) -> DbClient: - return DbClient(self._db, self.args["verbose"]) + return DbClient(self._db, self._verbosity > 0) @db.setter def db(self, url: str):