from __future__ import annotations from collections.abc import Callable from typing import Any _TERMINAL_TRADE_HANDLERS: dict[str, Callable[[dict[str, Any]], Any]] = {} def register_terminal_trade_handler(account_id: str, handler: Callable[[dict[str, Any]], Any]) -> None: key = str(account_id or "").strip() if not key: return _TERMINAL_TRADE_HANDLERS[key] = handler def unregister_terminal_trade_handler(account_id: str, handler: Callable[[dict[str, Any]], Any] | None = None) -> None: key = str(account_id or "").strip() if not key: return current = _TERMINAL_TRADE_HANDLERS.get(key) if handler is None or current is handler: _TERMINAL_TRADE_HANDLERS.pop(key, None) def get_terminal_trade_handler(account_id: str) -> Callable[[dict[str, Any]], Any] | None: key = str(account_id or "").strip() if not key: return None return _TERMINAL_TRADE_HANDLERS.get(key)