summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruvok2025-04-15 11:56:40 +0200
committeruvok2025-04-15 11:56:40 +0200
commita354a65ac8a7703e4387a35686a96921cbb8a08b (patch)
treed72833d7bea0cfd2fd895cecc523cdc38d568755
parentde828bba74cc35d7e55115776bb436939cb9f8d3 (diff)
Fix main program
-rw-r--r--bla.py9
1 files 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}")