Loading muffin/__main__.py +11 −13 Original line number Diff line number Diff line from pathlib import Path import itertools import sys from .payment_order.PaymentOrderLoader import load_pdf from .payment_order.PaymentOrderCollection import PaymentOrderCollection from .budget_plan.BudgetPlanLoader import load_csv directory = Path(sys.argv[1]) payment_orders = [load_pdf(pdf) for pdf in directory.rglob("*.pdf")] def group_by(iterable, key): return itertools.groupby(sorted(iterable, key=key), key) grouped_by_budgetary_item = group_by(payment_orders, lambda po: po.budgetary_item) sums = { budgetary_item: sum(po.amount_cent for po in payment_orders) for budgetary_item, payment_orders in grouped_by_budgetary_item budgetary_item_id: sum(po.amount for po in payment_orders) for budgetary_item_id, payment_orders in PaymentOrderCollection( directory ).by_budgetary_item_id } print(sums) budget_plan = load_csv( "./Coli_Budgetplan_2024.csv" ) print(budget_plan) Loading
muffin/__main__.py +11 −13 Original line number Diff line number Diff line from pathlib import Path import itertools import sys from .payment_order.PaymentOrderLoader import load_pdf from .payment_order.PaymentOrderCollection import PaymentOrderCollection from .budget_plan.BudgetPlanLoader import load_csv directory = Path(sys.argv[1]) payment_orders = [load_pdf(pdf) for pdf in directory.rglob("*.pdf")] def group_by(iterable, key): return itertools.groupby(sorted(iterable, key=key), key) grouped_by_budgetary_item = group_by(payment_orders, lambda po: po.budgetary_item) sums = { budgetary_item: sum(po.amount_cent for po in payment_orders) for budgetary_item, payment_orders in grouped_by_budgetary_item budgetary_item_id: sum(po.amount for po in payment_orders) for budgetary_item_id, payment_orders in PaymentOrderCollection( directory ).by_budgetary_item_id } print(sums) budget_plan = load_csv( "./Coli_Budgetplan_2024.csv" ) print(budget_plan)