unicex 0.7.0__py3-none-any.whl → 0.8.1__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.
Files changed (44) hide show
  1. unicex/_abc/__init__.py +4 -0
  2. unicex/_abc/decoder.py +18 -0
  3. unicex/_abc/uni_client.py +1 -1
  4. unicex/_base/__init__.py +2 -0
  5. unicex/_base/websocket.py +16 -4
  6. unicex/binance/adapter.py +1 -1
  7. unicex/binance/client.py +2 -2
  8. unicex/bitget/client.py +25 -10
  9. unicex/bybit/adapter.py +1 -1
  10. unicex/bybit/client.py +4 -4
  11. unicex/bybit/uni_client.py +2 -2
  12. unicex/bybit/websocket_manager.py +330 -2
  13. unicex/extra.py +84 -6
  14. unicex/gateio/adapter.py +2 -2
  15. unicex/gateio/client.py +1 -1
  16. unicex/hyperliquid/adapter.py +12 -1
  17. unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py +40 -0
  18. unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py +40 -0
  19. unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py +40 -0
  20. unicex/mexc/_spot_ws_proto/PublicAggreBookTickerV3Api_pb2.py +40 -0
  21. unicex/mexc/_spot_ws_proto/PublicAggreDealsV3Api_pb2.py +42 -0
  22. unicex/mexc/_spot_ws_proto/PublicAggreDepthsV3Api_pb2.py +42 -0
  23. unicex/mexc/_spot_ws_proto/PublicBookTickerBatchV3Api_pb2.py +40 -0
  24. unicex/mexc/_spot_ws_proto/PublicBookTickerV3Api_pb2.py +40 -0
  25. unicex/mexc/_spot_ws_proto/PublicDealsV3Api_pb2.py +42 -0
  26. unicex/mexc/_spot_ws_proto/PublicFuture_pb2.py +105 -0
  27. unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsBatchV3Api_pb2.py +40 -0
  28. unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsV3Api_pb2.py +42 -0
  29. unicex/mexc/_spot_ws_proto/PublicLimitDepthsV3Api_pb2.py +42 -0
  30. unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py +40 -0
  31. unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py +40 -0
  32. unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py +40 -0
  33. unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py +40 -0
  34. unicex/mexc/_spot_ws_proto/__init__.py +332 -0
  35. unicex/mexc/adapter.py +2 -2
  36. unicex/mexc/client.py +2 -2
  37. unicex/okx/adapter.py +2 -2
  38. unicex/okx/client.py +2627 -43
  39. unicex/okx/uni_client.py +8 -8
  40. {unicex-0.7.0.dist-info → unicex-0.8.1.dist-info}/METADATA +4 -3
  41. {unicex-0.7.0.dist-info → unicex-0.8.1.dist-info}/RECORD +44 -25
  42. {unicex-0.7.0.dist-info → unicex-0.8.1.dist-info}/WHEEL +0 -0
  43. {unicex-0.7.0.dist-info → unicex-0.8.1.dist-info}/licenses/LICENSE +0 -0
  44. {unicex-0.7.0.dist-info → unicex-0.8.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,332 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+
4
+ from __future__ import annotations
5
+
6
+ from typing import Any, Literal, Optional, Self, Union
7
+
8
+ from . import PrivateAccountV3Api_pb2 as PrivateAccountV3Api__pb2
9
+ from . import PrivateDealsV3Api_pb2 as PrivateDealsV3Api__pb2
10
+ from . import PrivateOrdersV3Api_pb2 as PrivateOrdersV3Api__pb2
11
+ from . import PublicAggreBookTickerV3Api_pb2 as PublicAggreBookTickerV3Api__pb2
12
+ from . import PublicAggreDealsV3Api_pb2 as PublicAggreDealsV3Api__pb2
13
+ from . import PublicAggreDepthsV3Api_pb2 as PublicAggreDepthsV3Api__pb2
14
+ from . import PublicBookTickerBatchV3Api_pb2 as PublicBookTickerBatchV3Api__pb2
15
+ from . import PublicBookTickerV3Api_pb2 as PublicBookTickerV3Api__pb2
16
+
17
+ # from proto import PublicDealsV3Api_pb2 as PublicDealsV3Api__pb2
18
+ # from proto import PublicIncreaseDepthsV3Api_pb2 as PublicIncreaseDepthsV3Api__pb2
19
+ # from proto import PublicLimitDepthsV3Api_pb2 as PublicLimitDepthsV3Api__pb2
20
+ # from proto import PrivateOrdersV3Api_pb2 as PrivateOrdersV3Api__pb2
21
+ # from proto import PublicBookTickerV3Api_pb2 as PublicBookTickerV3Api__pb2
22
+ # from proto import PrivateDealsV3Api_pb2 as PrivateDealsV3Api__pb2
23
+ # from proto import PrivateAccountV3Api_pb2 as PrivateAccountV3Api__pb2
24
+ # from proto import PublicSpotKlineV3Api_pb2 as PublicSpotKlineV3Api__pb2
25
+ # from proto import PublicMiniTickerV3Api_pb2 as PublicMiniTickerV3Api__pb2
26
+ # from proto import PublicMiniTickersV3Api_pb2 as PublicMiniTickersV3Api__pb2
27
+ # from proto import PublicBookTickerBatchV3Api_pb2 as PublicBookTickerBatchV3Api__pb2
28
+ # from proto import PublicIncreaseDepthsBatchV3Api_pb2 as PublicIncreaseDepthsBatchV3Api__pb2
29
+ # from proto import PublicAggreDepthsV3Api_pb2 as PublicAggreDepthsV3Api__pb2
30
+ # from proto import PublicAggreDealsV3Api_pb2 as PublicAggreDealsV3Api__pb2
31
+ # from proto import PublicAggreBookTickerV3Api_pb2 as PublicAggreBookTickerV3Api__pb2
32
+ # from proto import PushDataV3ApiWrapper_pb2 as PushDataV3ApiWrapper__pb2
33
+ from . import PublicDealsV3Api_pb2 as PublicDealsV3Api__pb2
34
+ from . import PublicIncreaseDepthsBatchV3Api_pb2 as PublicIncreaseDepthsBatchV3Api__pb2
35
+ from . import PublicIncreaseDepthsV3Api_pb2 as PublicIncreaseDepthsV3Api__pb2
36
+ from . import PublicLimitDepthsV3Api_pb2 as PublicLimitDepthsV3Api__pb2
37
+ from . import PublicMiniTickersV3Api_pb2 as PublicMiniTickersV3Api__pb2
38
+ from . import PublicMiniTickerV3Api_pb2 as PublicMiniTickerV3Api__pb2
39
+ from . import PublicSpotKlineV3Api_pb2 as PublicSpotKlineV3Api__pb2
40
+ from . import PushDataV3ApiWrapper_pb2 as PushDataV3ApiWrapper__pb2
41
+
42
+
43
+ class ProtoTyping:
44
+ class protoc:
45
+ def __call__(self, *args: Any, **kwds: Any) -> Self: ...
46
+ def ParseFromString(self, data: bytes) -> Self: ...
47
+
48
+ # PublicDealsV3Api__pb2
49
+
50
+ class PublicDealsV3ApiItem:
51
+ price: str
52
+ quantity: str
53
+ tradeType: int
54
+ time: int
55
+
56
+ class PublicDealsV3Api(protoc):
57
+ deals: list[ProtoTyping.PublicDealsV3ApiItem]
58
+ eventType: str
59
+
60
+ # PublicIncreaseDepthsV3Api__pb2
61
+
62
+ class PublicIncreaseDepthV3ApiItem(protoc):
63
+ price: str
64
+ quantity: str
65
+
66
+ class PublicIncreaseDepthsV3Api(protoc):
67
+ asks: list[ProtoTyping.PublicIncreaseDepthV3ApiItem]
68
+ bids: list[ProtoTyping.PublicIncreaseDepthV3ApiItem]
69
+ eventType: str
70
+ version: str
71
+
72
+ # PublicLimitDepthsV3Api__pb2
73
+
74
+ class PublicLimitDepthV3ApiItem(protoc):
75
+ price: str
76
+ quantity: str
77
+
78
+ class PublicLimitDepthsV3Api(protoc):
79
+ asks: list[ProtoTyping.PublicLimitDepthV3ApiItem]
80
+ bids: list[ProtoTyping.PublicLimitDepthV3ApiItem]
81
+ eventType: str
82
+ version: str
83
+
84
+ # PrivateOrdersV3Api__pb2
85
+
86
+ class PrivateOrdersV3Api(protoc):
87
+ id: str
88
+ clientId: str
89
+ price: str
90
+ quantity: str
91
+ amount: str
92
+ avgPrice: str
93
+ orderType: int
94
+ tradeType: int
95
+ isMaker: bool
96
+ remainAmount: str
97
+ remainQuantity: str
98
+ lastDealQuantity: str | None
99
+ cumulativeQuantity: str
100
+ cumulativeAmount: str
101
+ status: int
102
+ createTime: int
103
+ market: str | None
104
+ triggerType: int | None
105
+ triggerPrice: str | None
106
+ state: int | None
107
+ ocoId: str | None
108
+ routeFactor: str | None
109
+ symbolId: str | None
110
+ marketId: str | None
111
+ marketCurrencyId: str | None
112
+ currencyId: str | None
113
+
114
+ # PublicBookTickerV3Api__pb2
115
+
116
+ class PublicBookTickerV3Api(protoc):
117
+ bidPrice: str
118
+ bidQuantity: str
119
+ askPrice: str
120
+ askQuantity: str
121
+
122
+ # PrivateDealsV3Api__pb2
123
+
124
+ class PrivateDealsV3Api(protoc):
125
+ price: str
126
+ quantity: str
127
+ amount: str
128
+ tradeType: int
129
+ isMaker: bool
130
+ isSelfTrade: bool
131
+ tradeId: str
132
+ clientOrderId: str
133
+ orderId: str
134
+ feeAmount: str
135
+ feeCurrency: str
136
+ time: int
137
+
138
+ # PrivateAccountV3Api__pb2
139
+
140
+ class PrivateAccountV3Api(protoc):
141
+ vcoinName: str
142
+ coinId: str
143
+ balanceAmount: str
144
+ balanceAmountChange: str
145
+ frozenAmount: str
146
+ frozenAmountChange: str
147
+ type: str
148
+ time: int
149
+
150
+ # PublicSpotKlineV3Api__pb2
151
+
152
+ class PublicSpotKlineV3Api(protoc):
153
+ interval: Literal[
154
+ "Min1",
155
+ "Min5",
156
+ "Min15",
157
+ "Min30",
158
+ "Min60",
159
+ "Hour4",
160
+ "Hour8",
161
+ "Day1",
162
+ "Week1",
163
+ "Month1",
164
+ ]
165
+ windowStart: int
166
+ openingPrice: str
167
+ closingPrice: str
168
+ highestPrice: str
169
+ lowestPrice: str
170
+ volume: str
171
+ amount: str
172
+ windowEnd: int
173
+
174
+ # PublicMiniTickerV3Api__pb2
175
+
176
+ class PublicMiniTickerV3Api(protoc):
177
+ symbol: str
178
+ price: str
179
+ rate: str
180
+ zonedRate: str
181
+ high: str
182
+ low: str
183
+ volume: str
184
+ quantity: str
185
+ lastCloseRate: str
186
+ lastCloseZonedRate: str
187
+ lastCloseHigh: str
188
+ lastCloseLow: str
189
+
190
+ # PublicMiniTickersV3Api__pb2
191
+
192
+ class PublicMiniTickersV3Api(protoc):
193
+ items: list[ProtoTyping.PublicMiniTickerV3Api]
194
+
195
+ # PublicBookTickerBatchV3Api__pb2
196
+
197
+ class PublicBookTickerBatchV3Api(protoc):
198
+ items: list[ProtoTyping.PublicBookTickerV3Api]
199
+
200
+ # PublicIncreaseDepthsBatchV3Api__pb2
201
+
202
+ class PublicIncreaseDepthsBatchV3Api(protoc):
203
+ items: list[ProtoTyping.PublicIncreaseDepthsV3Api]
204
+ eventType: str
205
+
206
+ # PublicAggreDepthsV3Api__pb2
207
+
208
+ class PublicAggreDepthV3ApiItem(protoc):
209
+ price: str
210
+ quantity: str
211
+
212
+ class PublicAggreDepthsV3Api(protoc):
213
+ asks: list[ProtoTyping.PublicAggreDepthV3ApiItem]
214
+ bids: list[ProtoTyping.PublicAggreDepthV3ApiItem]
215
+ eventType: str
216
+ fromVersion: str
217
+ toVersion: str
218
+
219
+ # PublicAggreDealsV3Api__pb2
220
+
221
+ class PublicAggreDealsV3ApiItem(protoc):
222
+ price: str
223
+ quantity: str
224
+ tradeType: int
225
+ time: int
226
+
227
+ class PublicAggreDealsV3Api(protoc):
228
+ deals: list[ProtoTyping.PublicAggreDealsV3ApiItem]
229
+ eventType: str
230
+
231
+ # PublicAggreBookTickerV3Api__pb2
232
+
233
+ class PublicAggreBookTickerV3Api(protoc):
234
+ bidPrice: str
235
+ bidQuantity: str
236
+ askPrice: str
237
+ askQuantity: str
238
+
239
+ class PushDataV3ApiWrapper(protoc):
240
+ channel: str
241
+
242
+ publicDeals: ProtoTyping.PublicDealsV3Api
243
+ publicIncreaseDepths: ProtoTyping.PublicIncreaseDepthsV3Api
244
+ publicLimitDepths: ProtoTyping.PublicLimitDepthsV3Api
245
+ privateOrders: ProtoTyping.PrivateOrdersV3Api
246
+ publicBookTicker: ProtoTyping.PublicBookTickerV3Api
247
+ privateDeals: ProtoTyping.PrivateDealsV3Api
248
+ privateAccount: ProtoTyping.PrivateAccountV3Api
249
+ publicSpotKline: ProtoTyping.PublicSpotKlineV3Api
250
+ publicMiniTicker: ProtoTyping.PublicMiniTickerV3Api
251
+ publicMiniTickers: ProtoTyping.PublicMiniTickersV3Api
252
+ publicBookTickerBatch: ProtoTyping.PublicBookTickerBatchV3Api
253
+ publicIncreaseDepthsBatch: ProtoTyping.PublicIncreaseDepthsBatchV3Api
254
+ publicAggreDepths: ProtoTyping.PublicAggreDepthsV3Api
255
+ publicAggreDeals: ProtoTyping.PublicAggreDealsV3Api
256
+ publicAggreBookTicker: ProtoTyping.PublicAggreBookTickerV3Api
257
+
258
+ symbol: str | None
259
+ symbolId: str | None
260
+ createTime: int | None
261
+ sendTime: int | None
262
+
263
+
264
+ PublicSpotKlineV3Api: ProtoTyping.PublicSpotKlineV3Api = (
265
+ PublicSpotKlineV3Api__pb2.PublicSpotKlineV3Api
266
+ )
267
+ PublicDealsV3Api: ProtoTyping.PublicDealsV3Api = PublicDealsV3Api__pb2.PublicDealsV3Api
268
+ PublicIncreaseDepthV3ApiItem: ProtoTyping.PublicIncreaseDepthV3ApiItem = (
269
+ PublicIncreaseDepthsV3Api__pb2.PublicIncreaseDepthV3ApiItem
270
+ )
271
+ PublicIncreaseDepthsV3Api: ProtoTyping.PublicIncreaseDepthsV3Api = (
272
+ PublicIncreaseDepthsV3Api__pb2.PublicIncreaseDepthsV3Api
273
+ )
274
+ PublicLimitDepthV3ApiItem: ProtoTyping.PublicLimitDepthV3ApiItem = (
275
+ PublicLimitDepthsV3Api__pb2.PublicLimitDepthV3ApiItem
276
+ )
277
+ PublicLimitDepthsV3Api: ProtoTyping.PublicLimitDepthsV3Api = (
278
+ PublicLimitDepthsV3Api__pb2.PublicLimitDepthsV3Api
279
+ )
280
+ PrivateOrdersV3Api: ProtoTyping.PrivateOrdersV3Api = PrivateOrdersV3Api__pb2.PrivateOrdersV3Api
281
+ PublicBookTickerV3Api: ProtoTyping.PublicBookTickerV3Api = (
282
+ PublicBookTickerV3Api__pb2.PublicBookTickerV3Api
283
+ )
284
+ PrivateDealsV3Api: ProtoTyping.PrivateDealsV3Api = PrivateDealsV3Api__pb2.PrivateDealsV3Api
285
+ PrivateAccountV3Api: ProtoTyping.PrivateAccountV3Api = PrivateAccountV3Api__pb2.PrivateAccountV3Api
286
+ PublicMiniTickerV3Api: ProtoTyping.PublicMiniTickerV3Api = (
287
+ PublicMiniTickerV3Api__pb2.PublicMiniTickerV3Api
288
+ )
289
+ PublicMiniTickersV3Api: ProtoTyping.PublicMiniTickersV3Api = (
290
+ PublicMiniTickersV3Api__pb2.PublicMiniTickersV3Api
291
+ )
292
+ PublicBookTickerBatchV3Api: ProtoTyping.PublicBookTickerBatchV3Api = (
293
+ PublicBookTickerBatchV3Api__pb2.PublicBookTickerBatchV3Api
294
+ )
295
+ PublicIncreaseDepthsBatchV3Api: ProtoTyping.PublicIncreaseDepthsBatchV3Api = (
296
+ PublicIncreaseDepthsBatchV3Api__pb2.PublicIncreaseDepthsBatchV3Api
297
+ )
298
+ PublicAggreDepthsV3Api: ProtoTyping.PublicAggreDepthsV3Api = (
299
+ PublicAggreDepthsV3Api__pb2.PublicAggreDepthsV3Api
300
+ )
301
+ PublicAggreDealsV3Api: ProtoTyping.PublicAggreDealsV3Api = (
302
+ PublicAggreDealsV3Api__pb2.PublicAggreDealsV3Api
303
+ )
304
+ PublicAggreBookTickerV3Api: ProtoTyping.PublicAggreBookTickerV3Api = (
305
+ PublicAggreBookTickerV3Api__pb2.PublicAggreBookTickerV3Api
306
+ )
307
+ PushDataV3ApiWrapper: ProtoTyping.PushDataV3ApiWrapper = (
308
+ PushDataV3ApiWrapper__pb2.PushDataV3ApiWrapper
309
+ )
310
+
311
+
312
+ __all__ = [
313
+ "PublicSpotKlineV3Api",
314
+ "PublicDealsV3Api",
315
+ "PublicIncreaseDepthV3ApiItem",
316
+ "PublicIncreaseDepthsV3Api",
317
+ "PublicLimitDepthV3ApiItem",
318
+ "PublicLimitDepthsV3Api",
319
+ "PrivateOrdersV3Api",
320
+ "PublicBookTickerV3Api",
321
+ "PrivateDealsV3Api",
322
+ "PrivateAccountV3Api",
323
+ "PublicMiniTickerV3Api",
324
+ "PublicMiniTickersV3Api",
325
+ "PublicBookTickerBatchV3Api",
326
+ "PublicIncreaseDepthsBatchV3Api",
327
+ "PublicAggreDepthsV3Api",
328
+ "PublicAggreDealsV3Api",
329
+ "PublicAggreBookTickerV3Api",
330
+ "PushDataV3ApiWrapper",
331
+ "ProtoTyping",
332
+ ]
unicex/mexc/adapter.py CHANGED
@@ -17,7 +17,7 @@ class Adapter:
17
17
  """Адаптер для унификации данных с Mexc API."""
18
18
 
19
19
  @staticmethod
20
- def tickers(raw_data: list[dict], only_usdt: bool = True) -> list[str]:
20
+ def tickers(raw_data: list[dict], only_usdt: bool) -> list[str]:
21
21
  """Преобразует сырой ответ, в котором содержатся данные о тикерах, в список тикеров.
22
22
 
23
23
  Параметры:
@@ -32,7 +32,7 @@ class Adapter:
32
32
  ]
33
33
 
34
34
  @staticmethod
35
- def futures_tickers(raw_data: dict, only_usdt: bool = True) -> list[str]:
35
+ def futures_tickers(raw_data: dict, only_usdt: bool) -> list[str]:
36
36
  """Преобразует сырой ответ, в котором содержатся данные о фьючерсных тикерах, в список тикеров.
37
37
 
38
38
  Параметры:
unicex/mexc/client.py CHANGED
@@ -33,8 +33,8 @@ class Client(BaseClient):
33
33
 
34
34
  def _generate_signature(self, payload: dict) -> str:
35
35
  """Генерирует подпись на основе данных запроса."""
36
- if not self._api_secret:
37
- raise NotAuthorized("API secret is required for private endpoints.")
36
+ if not self.is_authorized():
37
+ raise NotAuthorized("Api key and api secret is required to private endpoints")
38
38
 
39
39
  query_string = dict_to_query_string(payload)
40
40
  return generate_hmac_sha256_signature(
unicex/okx/adapter.py CHANGED
@@ -18,7 +18,7 @@ class Adapter:
18
18
  """Адаптер для унификации данных с Okx API."""
19
19
 
20
20
  @staticmethod
21
- def tickers(raw_data: dict, only_usdt: bool = True) -> list[str]:
21
+ def tickers(raw_data: dict, only_usdt: bool) -> list[str]:
22
22
  """Преобразует сырые данные о тикерах в список унифицированных символов.
23
23
 
24
24
  Параметры:
@@ -35,7 +35,7 @@ class Adapter:
35
35
  ]
36
36
 
37
37
  @staticmethod
38
- def futures_tickers(raw_data: dict, only_usdt: bool = True) -> list[str]:
38
+ def futures_tickers(raw_data: dict, only_usdt: bool) -> list[str]:
39
39
  """Преобразует сырые данные о тикерах в список унифицированных символов.
40
40
 
41
41
  Параметры: