hashtablebot.banking package¶
Submodules¶
hashtablebot.banking.bank module¶
- class hashtablebot.banking.bank.Bank¶
Bases:
objectControls 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¶