From 38f14349e9a70e582e0e1e2acecbbf18ab921385 Mon Sep 17 00:00:00 2001 From: Timothy Pogue Date: Mon, 5 Sep 2022 23:25:25 -0600 Subject: [PATCH] move bytes decoding to serializer --- freqtrade/rpc/api_server/ws/proxy.py | 6 ------ freqtrade/rpc/api_server/ws/serializer.py | 7 +++---- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/freqtrade/rpc/api_server/ws/proxy.py b/freqtrade/rpc/api_server/ws/proxy.py index ea977a228..e43ce6441 100644 --- a/freqtrade/rpc/api_server/ws/proxy.py +++ b/freqtrade/rpc/api_server/ws/proxy.py @@ -27,12 +27,6 @@ class WebSocketProxy: """ Send data on the wrapped websocket """ - - if not isinstance(data, str): - # We use HybridJSONWebSocketSerializer, which when serialized returns - # bytes because of ORJSON, so we explicitly decode into a string - data = str(data, "utf-8") - if hasattr(self._websocket, "send_text"): await self._websocket.send_text(data) else: diff --git a/freqtrade/rpc/api_server/ws/serializer.py b/freqtrade/rpc/api_server/ws/serializer.py index 8ff617f45..c0c24bb28 100644 --- a/freqtrade/rpc/api_server/ws/serializer.py +++ b/freqtrade/rpc/api_server/ws/serializer.py @@ -57,11 +57,10 @@ class RapidJSONWebSocketSerializer(WebSocketSerializer): class HybridJSONWebSocketSerializer(WebSocketSerializer): - def _serialize(self, data): - # ORJSON returns bytes - return orjson.dumps(data, default=_json_default) + def _serialize(self, data) -> str: + return str(orjson.dumps(data, default=_json_default), "utf-8") - def _deserialize(self, data): + def _deserialize(self, data: str): # RapidJSON expects strings return rapidjson.loads(data, object_hook=_json_object_hook)