Files
siloqy/prod/bingx/reconciliation.py

31 lines
942 B
Python
Raw Normal View History

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)