"""superx_budget Creating a budget overview from a SuperX export """ __version__ = "0.0.1" import argparse import pathlib import sys import warnings from .budget import parse_budget_file from .exceptions import BudgetParserError, SuperXParserError # noqa: F401 from .helpers import ( # noqa: F401 find_budget_file, find_recipients, get_sheet_of_file, is_budget_file_name, list_budget_files, ) from .overview import create_overview from .pyramid import main # noqa: F401 from .superx import parse_exported_file def cli_parse_exported_file(): parser = argparse.ArgumentParser( prog="SuperxParserTest", description="Try to parse a file exported from SuperX", ) parser.add_argument("filename") args = parser.parse_args() with warnings.catch_warnings(action="ignore"): sys.stderr.write(f"trying to read '{args.filename}'\n") exported = parse_exported_file(pathlib.Path(args.filename)) sys.stderr.write("... OK\n") sys.stderr.write( f"searching budget file for year '{exported.account_year}'\n" ) budget_dir = pathlib.Path(__file__).parent.parent / "budgets" budget_file = find_budget_file(budget_dir, exported.account_year) if not budget_file: sys.exit("... no budget file found") sys.stderr.write(f"... found '{budget_file}'\n") sys.stderr.write(f"parsing budget file '{budget_file}'\n") budget_data = parse_budget_file(budget_file) sys.stderr.write("... OK\n") sys.stderr.write("Creating overview\n") overview_map = create_overview(budget_data, exported) sys.stderr.write("... OK\n") sys.stderr.write("Sorting overview\n") # this here is the data from the overview template overview = sorted(overview_map.values(), key=lambda i: i.row) # this is a simple check if the overview data is not completly off _ = str(overview) sys.stderr.write("... OK\n") sys.stderr.write("Geting recipients file\n") recipients = find_recipients(budget_dir) # noqa: F841 sys.stderr.write("... OK\n") sys.stderr.write("Retrieving sheet for export\n") sheet = get_sheet_of_file(budget_file) # noqa: F841 sys.stderr.write("... OK\n") sys.stderr.write("quick parser test did not find any errors\n")