Add support for event base_margin_info and symbol_margin_info.

This commit is contained in:
Davide Casale
2024-04-24 16:42:54 +02:00
parent 52f24ffe7d
commit a72a9475c0
5 changed files with 31 additions and 50 deletions

View File

@@ -64,6 +64,8 @@ _COMMON = [
"trade_execution",
"trade_execution_update",
"wallet_update",
"base_margin_info",
"symbol_margin_info",
"notification",
"on-req-notification",
"ou-req-notification",
@@ -105,7 +107,7 @@ class BfxEventEmitter(AsyncIOEventEmitter):
) -> Union[_Handler, Callable[[_Handler], _Handler]]:
if event not in BfxEventEmitter._EVENTS:
raise UnknownEventError(
f"Can't register to unknown event: <{event}> (to get a full"
f"Can't register to unknown event: <{event}> (to get a full "
"list of available events see https://docs.bitfinex.com/)."
)

View File

@@ -51,17 +51,26 @@ class AuthEventsHandler:
def handle(self, abbrevation: str, stream: Any) -> None:
if abbrevation == "n":
self.__notification(stream)
elif abbrevation == "miu":
if stream[0] == "base":
self.__event_emitter.emit(
"base_margin_info", serializers.BaseMarginInfo.parse(*stream)
)
elif stream[0] == "sym":
self.__event_emitter.emit(
"symbol_margin_info", serializers.SymbolMarginInfo.parse(*stream)
)
else:
for abbrevations, serializer in AuthEventsHandler.__SERIALIZERS.items():
if abbrevation in abbrevations:
event = AuthEventsHandler.__ABBREVIATIONS[abbrevation]
for abbrevations, serializer in AuthEventsHandler.__SERIALIZERS.items():
if abbrevation in abbrevations:
event = AuthEventsHandler.__ABBREVIATIONS[abbrevation]
if all(isinstance(sub_stream, list) for sub_stream in stream):
data = [serializer.parse(*sub_stream) for sub_stream in stream]
else:
data = serializer.parse(*stream)
if all(isinstance(sub_stream, list) for sub_stream in stream):
data = [serializer.parse(*sub_stream) for sub_stream in stream]
else:
data = serializer.parse(*stream)
self.__event_emitter.emit(event, data)
self.__event_emitter.emit(event, data)
def __notification(self, stream: Any) -> None:
event: str = "notification"