diff options
Diffstat (limited to 'bla.py')
-rw-r--r-- | bla.py | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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}") |