Creating a budget overview from a SuperX export.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

67 lines
2.1 KiB

"""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 # noqa: F401
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 # noqa: F401
from .pyramid import main # noqa: F401
from .superx import parse_exported_file # noqa: F401
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 = superx.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(f"Creating overview\n")
overview_map = create_overview(budget_data, exported)
sys.stderr.write("... OK\n")
sys.stderr.write(f"Sorting overview\n")
overview = sorted(overview_map.values(), key=lambda i: i.row)
sys.stderr.write("... OK\n")
sys.stderr.write(f"Geting recipients file\n")
recipients = find_recipients(budget_dir)
sys.stderr.write("... OK\n")
sys.stderr.write(f"Retrieving sheet for export\n")
sheet = get_sheet_of_file(budget_file)
sys.stderr.write("... OK\n")