unicex 0.16.5__py3-none-any.whl → 0.16.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unicex/_abc/uni_websocket_manager.py +15 -0
- unicex/bybit/uni_websocket_manager.py +6 -0
- unicex/mexc/uni_websocket_manager.py +7 -0
- unicex/okx/uni_client.py +1 -1
- {unicex-0.16.5.dist-info → unicex-0.16.7.dist-info}/METADATA +1 -1
- {unicex-0.16.5.dist-info → unicex-0.16.7.dist-info}/RECORD +9 -9
- {unicex-0.16.5.dist-info → unicex-0.16.7.dist-info}/WHEEL +1 -1
- {unicex-0.16.5.dist-info → unicex-0.16.7.dist-info}/licenses/LICENSE +0 -0
- {unicex-0.16.5.dist-info → unicex-0.16.7.dist-info}/top_level.txt +0 -0
|
@@ -8,6 +8,7 @@ from loguru import logger as _logger
|
|
|
8
8
|
|
|
9
9
|
from unicex._base import BaseClient, Websocket
|
|
10
10
|
from unicex.enums import Timeframe
|
|
11
|
+
from unicex.exceptions import AdapterError
|
|
11
12
|
from unicex.types import LoggerLike
|
|
12
13
|
|
|
13
14
|
from .uni_client import IUniClient
|
|
@@ -41,6 +42,13 @@ class IUniWebsocketManager(ABC):
|
|
|
41
42
|
try:
|
|
42
43
|
adapted = adapter_func(raw_msg)
|
|
43
44
|
except Exception as e:
|
|
45
|
+
if isinstance(e, AdapterError):
|
|
46
|
+
try:
|
|
47
|
+
if self._is_service_message(raw_msg):
|
|
48
|
+
return
|
|
49
|
+
except Exception as err:
|
|
50
|
+
self._logger.error(f"Failed to handle adapter error: {e}")
|
|
51
|
+
raise err from e
|
|
44
52
|
self._logger.warning(f"Failed to adapt message: {e}")
|
|
45
53
|
return
|
|
46
54
|
if isinstance(adapted, list):
|
|
@@ -51,6 +59,13 @@ class IUniWebsocketManager(ABC):
|
|
|
51
59
|
|
|
52
60
|
return _wrapper
|
|
53
61
|
|
|
62
|
+
def _is_service_message(self, raw_msg: Any) -> bool:
|
|
63
|
+
"""Дополнительно обрабатывает ошибку адаптации сообщения на случай, если это сервисное сообщение, например `ping` или `subscribe`.
|
|
64
|
+
|
|
65
|
+
Переопределяется в каждом наследнике в связи с разным форматом входящих данных.
|
|
66
|
+
"""
|
|
67
|
+
return False
|
|
68
|
+
|
|
54
69
|
@overload
|
|
55
70
|
def klines(
|
|
56
71
|
self,
|
|
@@ -36,6 +36,12 @@ class UniWebsocketManager(IUniWebsocketManager):
|
|
|
36
36
|
self._websocket_manager = WebsocketManager(self._client, **ws_kwargs) # type: ignore
|
|
37
37
|
self._adapter = Adapter()
|
|
38
38
|
|
|
39
|
+
def _is_service_message(self, raw_msg: Any) -> bool:
|
|
40
|
+
"""Дополнительно обрабатывает ошибку адаптации сообщения с вебсокета Bybit."""
|
|
41
|
+
if raw_msg.get("op") == "subscribe":
|
|
42
|
+
return True
|
|
43
|
+
return False
|
|
44
|
+
|
|
39
45
|
@overload
|
|
40
46
|
def klines(
|
|
41
47
|
self,
|
|
@@ -36,6 +36,13 @@ class UniWebsocketManager(IUniWebsocketManager):
|
|
|
36
36
|
self._websocket_manager = WebsocketManager(self._client, **ws_kwargs) # type: ignore
|
|
37
37
|
self._adapter = Adapter()
|
|
38
38
|
|
|
39
|
+
def _is_service_message(self, raw_msg: Any) -> bool:
|
|
40
|
+
"""Дополнительно обрабатывает ошибку адаптации сообщения на случай, если это сервисное сообщение, например `ping` или `subscribe`.
|
|
41
|
+
|
|
42
|
+
Переопределяется в каждом наследнике в связи с разным форматом входящих данных.
|
|
43
|
+
"""
|
|
44
|
+
return raw_msg.get("msg") == "PONG"
|
|
45
|
+
|
|
39
46
|
@overload
|
|
40
47
|
def klines(
|
|
41
48
|
self,
|
unicex/okx/uni_client.py
CHANGED
|
@@ -173,7 +173,7 @@ class UniClient(IUniClient[Client]):
|
|
|
173
173
|
raise ValueError("Symbol is required to okx funding rate")
|
|
174
174
|
raw_data = await self._client.get_funding_rate(inst_id=symbol)
|
|
175
175
|
adapted_data = Adapter.funding_rate(raw_data)
|
|
176
|
-
return adapted_data
|
|
176
|
+
return adapted_data[symbol]
|
|
177
177
|
|
|
178
178
|
@overload
|
|
179
179
|
async def open_interest(self, symbol: str) -> OpenInterestItem: ...
|
|
@@ -8,7 +8,7 @@ unicex/utils.py,sha256=1iK-ifZ-hUaU4Z-YCLoZsjAZREfJO7amYsjzG70JEk8,9963
|
|
|
8
8
|
unicex/_abc/__init__.py,sha256=fxZjNFJFeFwWTXz8iSDe7eCWwE6xfFwFwAuG6l-TI8A,289
|
|
9
9
|
unicex/_abc/exchange_info.py,sha256=TP_theOj1JS3Dcx5hqGT1yma1Jed776N4okOKXB7ePw,9537
|
|
10
10
|
unicex/_abc/uni_client.py,sha256=-kFVA2W2Nm50ZbTzxzrRqbh_To3vSrPNE9IxdfxCCVI,14946
|
|
11
|
-
unicex/_abc/uni_websocket_manager.py,sha256=
|
|
11
|
+
unicex/_abc/uni_websocket_manager.py,sha256=fhZh2e2EDnt7YejCa0Uk3oqmg0OOcL8Kp5Ts0F9tpco,10744
|
|
12
12
|
unicex/_base/__init__.py,sha256=0TmevATGnRB3qow6tkCR8dQKNZCWKeib6YQjNJ4a1b0,236
|
|
13
13
|
unicex/_base/client.py,sha256=GuWfNNO6jVLAN-YUNKLmd-W5AfRelJIgKUe7vIQ12Qk,9318
|
|
14
14
|
unicex/_base/websocket.py,sha256=F6fwFeDkn6GLI0IC0g_SNOrfCJw4RR3Uqo8JMWkCApc,13422
|
|
@@ -41,7 +41,7 @@ unicex/bybit/adapter.py,sha256=yxdcn9wLcwQClnEL2kTHoPPkGiEDBNgeQ3J5qFHqcng,8174
|
|
|
41
41
|
unicex/bybit/client.py,sha256=TB69fwMgvmKmkTFcO9Wf8S_Fe4JJGOM_208AlL4Dh8A,61673
|
|
42
42
|
unicex/bybit/exchange_info.py,sha256=S5IrN5c-jW0QbuO4LGH5rluO6qo7ib-wL-8LJWNOZgI,2422
|
|
43
43
|
unicex/bybit/uni_client.py,sha256=0wmIRRgofuJXWvZMB1gHwuIEfoWuPhLJXthmK1f9w40,8382
|
|
44
|
-
unicex/bybit/uni_websocket_manager.py,sha256=
|
|
44
|
+
unicex/bybit/uni_websocket_manager.py,sha256=6Stzcr1ii97zLhE7Jam1254VNsUwNFmtfv2u6XKPLG4,12031
|
|
45
45
|
unicex/bybit/user_websocket.py,sha256=IGGEnwyWs5jOppgK_R7SisBDvsiF1_piTswBrdQOgDg,128
|
|
46
46
|
unicex/bybit/websocket_manager.py,sha256=SYe2gGoPZvhasCehR7K2DOw_2nbewauF3BBIKYN88FQ,14463
|
|
47
47
|
unicex/gate/__init__.py,sha256=dsKvhQhDcw4_w0S4c9IjKkCoOg4DCUtSecEUOlfstug,929
|
|
@@ -73,7 +73,7 @@ unicex/mexc/adapter.py,sha256=OGlTAJ0IRg4YVu9cMKDH9orPd6FnIUDqKO8jHa_BpQs,13631
|
|
|
73
73
|
unicex/mexc/client.py,sha256=FBUSs4Hu2DExVKPKJG9OawbqidACPFJ1U_1md05E3Mc,31004
|
|
74
74
|
unicex/mexc/exchange_info.py,sha256=z2bQsVU0ciXV2_DFkueZHo1X35KIK2alD-7ZZjNg5Kc,1763
|
|
75
75
|
unicex/mexc/uni_client.py,sha256=ldsFyE02x3cHjUDzGXMcWRVNkdiYWhrqrFZt2auas_4,9454
|
|
76
|
-
unicex/mexc/uni_websocket_manager.py,sha256=
|
|
76
|
+
unicex/mexc/uni_websocket_manager.py,sha256=TIaIWsjK1N5bqtBHqOafzEyKpSnb30O3uIx6aCS8lOY,11307
|
|
77
77
|
unicex/mexc/user_websocket.py,sha256=l77-e6i0B2btd7a5IcCytbgswnV171NqOhunTcbaq48,127
|
|
78
78
|
unicex/mexc/websocket_manager.py,sha256=0VhgXJil4xXm-YLuW2WVT7REv0oaivd9nZ4VI14rUzI,22926
|
|
79
79
|
unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py,sha256=3bP1pGjeO-Norp7DhhdrQ4FcQTEKkCiL2mLagyoJHp8,1879
|
|
@@ -98,12 +98,12 @@ unicex/okx/__init__.py,sha256=Ljbw3AP0YrPF5bIPJi_3JP3B_czR9xurYHI24rgWk9M,920
|
|
|
98
98
|
unicex/okx/adapter.py,sha256=4MpQh12nzlzB0HbOCHItYoWNFXbFCe9DntVC0smm-PY,7609
|
|
99
99
|
unicex/okx/client.py,sha256=N7ma49ToMGjYiTvuoV52-NaG-vLx3s087KF67dQCRBs,91079
|
|
100
100
|
unicex/okx/exchange_info.py,sha256=z2GrMkhZSJLdLsscqIfwQnWlnsX-RWPqGIbVfVbOVg4,1786
|
|
101
|
-
unicex/okx/uni_client.py,sha256=
|
|
101
|
+
unicex/okx/uni_client.py,sha256=fQVR4kz_2UvWD6V-MRlVVyAfaNIh2Q3PxpIgJrXY5hc,8702
|
|
102
102
|
unicex/okx/uni_websocket_manager.py,sha256=wrROl5RmxCJC8o_k6mc1UufbNsOKTRhIFqq5yinXUBQ,11626
|
|
103
103
|
unicex/okx/user_websocket.py,sha256=8c9kpm-xVa729pW93OKUGLHaE9MY0uzEpjIgNIFRF80,126
|
|
104
104
|
unicex/okx/websocket_manager.py,sha256=3sXjN0BJGyj2aK05J4WJ_-hhwaSX9PvzhaZri86OlZg,25038
|
|
105
|
-
unicex-0.16.
|
|
106
|
-
unicex-0.16.
|
|
107
|
-
unicex-0.16.
|
|
108
|
-
unicex-0.16.
|
|
109
|
-
unicex-0.16.
|
|
105
|
+
unicex-0.16.7.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
|
|
106
|
+
unicex-0.16.7.dist-info/METADATA,sha256=HHv5Tf9r0hkhlvUJikeErpukMgeb-vMITVF9bACMnX0,11972
|
|
107
|
+
unicex-0.16.7.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
108
|
+
unicex-0.16.7.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
|
|
109
|
+
unicex-0.16.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|