hashtablebot.banking package

Submodules

hashtablebot.banking.bank module

class hashtablebot.banking.bank.Bank

Bases: object

Controls transactions that change BotUser’s balance.

Uses ArjanCodes’s implementation of the Command Design Pattern to ensure an error in a batch of transactions rolls back changes to all balances.

execute(transaction: Transaction) None
redo() None
redo_stack: list[hashtablebot.banking.transaction.Transaction] = []
undo() None
undo_stack: list[hashtablebot.banking.transaction.Transaction] = []

hashtablebot.banking.commands module

class hashtablebot.banking.commands.Batch(commands: list[hashtablebot.banking.transaction.Transaction] = <factory>)

Bases: object

commands: list[hashtablebot.banking.transaction.Transaction]
execute() None
redo() None
undo() None
class hashtablebot.banking.commands.Deposit(bank_user: hashtablebot.banking.bank_user.BankUser, amount: int)

Bases: object

amount: int
bank_user: BankUser
execute() None
redo() None
property transfer_details: str
undo() None
class hashtablebot.banking.commands.Transfer(from_bank_user: hashtablebot.banking.bank_user.BankUser, to_bank_user: hashtablebot.banking.bank_user.BankUser, amount: int)

Bases: object

amount: int
execute() None
from_bank_user: BankUser
redo() None
to_bank_user: BankUser
property transfer_details: str
undo() None
class hashtablebot.banking.commands.Withdrawal(bank_user: hashtablebot.banking.bank_user.BankUser, amount: int)

Bases: object

amount: int
bank_user: BankUser
execute() None
redo() None
property transfer_details: str
undo() None

hashtablebot.banking.transaction module

class hashtablebot.banking.transaction.Transaction(*args, **kwargs)

Bases: Protocol

execute() None
redo() None
undo() None

Module contents