From ceedc4c3c19da7f01e1c315cb5c41bf4a4c59672 Mon Sep 17 00:00:00 2001
From: uvok
Date: Mon, 14 Apr 2025 10:43:35 +0200
Subject: Split files, add zest

---
 bla.py | 53 ++---------------------------------------------------
 1 file changed, 2 insertions(+), 51 deletions(-)

(limited to 'bla.py')

diff --git a/bla.py b/bla.py
index f9de595..6c2a4c2 100644
--- a/bla.py
+++ b/bla.py
@@ -1,58 +1,9 @@
 import csv
-from collections import defaultdict, deque
+from collections import defaultdict
 from datetime import datetime
 
-class Trade:
-    def __init__(self, amount, total_cost, date):
-        self.amount = amount
-        self.total_cost = total_cost
-        self.date = date
+from trade_queue import FIFOQueue
 
-    def __repr__(self):
-        return f"Trade(amount={self.amount}, total_cost={self.total_cost}, date={self.date})"
-
-class FIFOQueue:
-    """
-    Crypto trading FIFO queue.
-
-    Will track trades.
-    """
-    def __init__(self):
-        self.queue = deque()
-
-    def add(self, amount, total_cost, date):
-        """
-        Add a trade to the queue.
-        """
-        trade = Trade(amount, total_cost, date)
-        self.queue.append(trade)
-
-    def remove(self, amount):
-        """
-        Remove a specified amount from the queue, returning the
-        trades used to buy.
-        """
-        if amount <= 0:
-            raise ValueError("The amount to remove must be positive.")
-
-        remaining = amount
-        entries = []
-
-        while remaining > 0:
-            if not self.queue:
-                raise ValueError(f"Insufficient assets in queue to process sale of {amount}.")
-
-            trade = self.queue[0]
-            if trade.amount > remaining:
-                trade.amount -= remaining
-                entries.append(Trade(remaining, trade.total_cost, trade.date))
-                remaining = 0
-            else:
-                remaining -= trade.amount
-                entries.append(trade)
-                self.queue.popleft()
-
-        return entries
 
 def generate_report(sale_entries, proceeds, crypto_asset, date_sold):
     report = []
-- 
cgit v1.2.3