diff --git a/parsers.yaml b/parsers.yaml index 512c960..465d7e6 100644 --- a/parsers.yaml +++ b/parsers.yaml @@ -12,6 +12,10 @@ default: &default encoding: utf-8 separator: "\t" date_fmt: "%Y-%m-%d" + debit: + date: 0 + text: 1 + value: 3 Bank1: <<: *default diff --git a/pfbudget/parsers.py b/pfbudget/parsers.py index 821383d..82f8a6d 100644 --- a/pfbudget/parsers.py +++ b/pfbudget/parsers.py @@ -34,25 +34,25 @@ Options = namedtuple( ) -def parse_data(db: DBManager, filename: str, bank: list = []) -> None: +def parse_data(db: DBManager, filename: str, args: dict) -> None: cfg: dict = yaml.safe_load(open("parsers.yaml")) assert ( "Banks" in cfg ), "parsers.yaml is missing the Banks section with the list of available banks" - if not bank: + if not args["bank"]: bank, creditcard = utils.find_credit_institution( filename, cfg.get("Banks"), cfg.get("CreditCards") ) else: - bank = bank[0] - creditcard = None + bank = args["bank"][0] + creditcard = None if not args["creditcard"] else args["creditcard"][0] - if creditcard: + if not creditcard: + options: dict = cfg[bank] + else: options: dict = cfg[bank][creditcard] bank += creditcard - else: - options: dict = cfg[bank] if options.get("additional_parser"): parser = getattr(import_module("pfbudget.parsers"), bank) diff --git a/pfbudget/runnable.py b/pfbudget/runnable.py index 3130dff..34c584d 100644 --- a/pfbudget/runnable.py +++ b/pfbudget/runnable.py @@ -65,6 +65,7 @@ def argparser() -> argparse.ArgumentParser: p_parse = subparsers.add_parser("parse", parents=[help]) p_parse.add_argument("path", nargs="+", type=str) p_parse.add_argument("--bank", nargs=1, type=str) + p_parse.add_argument("--creditcard", nargs=1, type=str) p_parse.set_defaults(func=parse) """ @@ -108,9 +109,9 @@ def parse(args): for path in args.path: if (dir := Path(path)).is_dir(): for file in dir.iterdir(): - parse_data(db, file, args.bank) + parse_data(db, file, vars(args)) elif Path(path).is_file(): - parse_data(db, path, args.bank) + parse_data(db, path, vars(args)) else: raise FileNotFoundError