From a354a65ac8a7703e4387a35686a96921cbb8a08b Mon Sep 17 00:00:00 2001 From: uvok Date: Tue, 15 Apr 2025 11:56:40 +0200 Subject: Fix main program --- bla.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bla.py b/bla.py index fafbd5d..12f1a0e 100644 --- a/bla.py +++ b/bla.py @@ -1,14 +1,17 @@ import csv from collections import defaultdict from datetime import datetime +from decimal import Decimal +from typing import Dict, List from trade import Trade from trade_queue import FIFOQueue -def generate_report(sale_entries, proceeds, crypto_asset, date_sold): +def generate_report(sale_entries, proceeds: float|Decimal, crypto_asset, date_sold): report = [] sell_date = datetime.strptime(date_sold, "%Y-%m-%d").strftime("%d.%m.%Y") + proceeds = Decimal(proceeds) trade: Trade for trade in sale_entries: @@ -34,7 +37,7 @@ def generate_report(sale_entries, proceeds, crypto_asset, date_sold): return report def process_ledger(file_path, output_path): - fifo_queues = {} # Separate FIFO queue per cryptocurrency + fifo_queues :Dict[str,FIFOQueue] = {} # Separate FIFO queue per cryptocurrency trades_by_refid = defaultdict(list) report = [] @@ -76,7 +79,7 @@ def process_ledger(file_path, output_path): fifo_queues[crypto_asset].add(crypto_amount, stake_amount, date_sold) elif eur_amount > 0: # Sale of cryptocurrency proceeds = eur_amount - eur_fee # Account for EUR fees - sale_entries = fifo_queues[crypto_asset].remove(-crypto_amount) + sale_entries = fifo_queues[crypto_asset].remove_coins(-crypto_amount) report.extend(generate_report(sale_entries, proceeds, crypto_asset, date_sold)) else: raise ValueError(f"Unexpected trade grouping for refid {refid}") -- cgit v1.2.3