From 07beec3262963c12deaaa89c290d7f6baffea67b Mon Sep 17 00:00:00 2001 From: uvok Date: Fri, 18 Apr 2025 17:37:57 +0200 Subject: Extract method --- ledger_process.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'ledger_process.py') diff --git a/ledger_process.py b/ledger_process.py index adcaacb..2797c6b 100644 --- a/ledger_process.py +++ b/ledger_process.py @@ -46,18 +46,21 @@ class LedgerProcess: elif action.type == "withdrawal" and action.asset != "EUR": assert len(actions) == 1 - assert action.amount < 0 - assert action.fee >= 0 + self._process_withdrawal(action) - currency = action.asset - self.external_wallet.setdefault(currency, FIFOQueue()) - self.fifo_queues.setdefault(currency, FIFOQueue()) + def _process_withdrawal(self, action): + assert action.amount < 0 + assert action.fee >= 0 - t = self.fifo_queues[currency].remove( - lambda t: t.amount == -action.amount + action.fee - ) - t.remove_coins(action.fee) - self.external_wallet[currency].add_trade(t) + currency = action.asset + self.external_wallet.setdefault(currency, FIFOQueue()) + self.fifo_queues.setdefault(currency, FIFOQueue()) + + t = self.fifo_queues[currency].remove( + lambda t: t.amount == -action.amount + action.fee + ) + t.remove_coins(action.fee) + self.external_wallet[currency].add_trade(t) def _process_trade(self, refid: str, trades: List[LedgerAction]): if len(trades) == 2: # Ensure we have two related rows (EUR + crypto) @@ -99,7 +102,9 @@ class LedgerProcess: ) else: logger.error(f"Trade group doesn't have expected currencies.") - raise MismatchedTradeError(f"Unexpected trade grouping for refid {refid}") + raise MismatchedTradeError( + f"Unexpected trade grouping for refid {refid}" + ) else: logger.error(f"Trade group has {len(trades)} trades, expected 2.") raise MismatchedTradeError(f"Unexpected number of trades for refid {refid}") -- cgit v1.2.3