unicex 0.14.9__py3-none-any.whl → 0.15.2__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.
@@ -27,7 +27,7 @@ class WebsocketManager:
27
27
  class _MexcProtobufDecoder:
28
28
  """Класс для декодирования сообщений в формате Protobuf со спотового рынка Mexc."""
29
29
 
30
- def decode(self, message: Any) -> dict:
30
+ def decode(self, message: Any) -> dict | Literal["ping"]:
31
31
  if isinstance(message, bytes):
32
32
  wrapper = PushDataV3ApiWrapper() # noqa
33
33
  wrapper.ParseFromString(message)
@@ -15,13 +15,13 @@ type CallbackType = Callable[[Any], Awaitable[None]]
15
15
  class WebsocketManager:
16
16
  """Менеджер асинхронных вебсокетов для Okx."""
17
17
 
18
- _BASE_URL = "wss://ws.okx.com:8443/ws"
18
+ _BASE_URL: str = "wss://ws.okx.com:8443/ws"
19
19
  """Базовый URL вебсокетов на Okx."""
20
20
 
21
- _PUBLIC_URL = _BASE_URL + "/v5/public"
21
+ _PUBLIC_URL: str = _BASE_URL + "/v5/public"
22
22
  """Публичный URL вебсокетов на Okx."""
23
23
 
24
- _BUSINESS_URL = _BASE_URL + "/v5/business"
24
+ _BUSINESS_URL: str = _BASE_URL + "/v5/business"
25
25
  """Бизнес-URL вебсокетов на Okx. (для топиков trades-all и candle)"""
26
26
 
27
27
  def __init__(self, client: Client | None = None, **ws_kwargs: Any) -> None:
unicex/utils.py CHANGED
@@ -1,6 +1,7 @@
1
1
  """Модуль, который предоставляет дополнительные функции, которые нужны для внутренного использования в библиотеке."""
2
2
 
3
3
  __all__ = [
4
+ "get_timestamp",
4
5
  "dict_to_query_string",
5
6
  "generate_hmac_sha256_signature",
6
7
  "sort_params_by_alphabetical_order",
@@ -15,6 +16,7 @@ import base64
15
16
  import hashlib
16
17
  import hmac
17
18
  import json
19
+ import time
18
20
  from collections.abc import Callable, Iterable
19
21
  from functools import wraps
20
22
  from typing import Any, Literal
@@ -24,6 +26,19 @@ from unicex.enums import Exchange, MarketType
24
26
  from unicex.exceptions import AdapterError
25
27
 
26
28
 
29
+ def get_timestamp(milliseconds: bool = True) -> int:
30
+ """Возвращает текущее время в миллисекундах или секундах.
31
+
32
+ Параметры:
33
+ milliseconds (`bool`, опционально): Если True, возвращает время в миллисекундах.
34
+ Если False, возвращает время в секундах.
35
+
36
+ Возвращает:
37
+ `int`: Текущее время в миллисекундах или секундах.
38
+ """
39
+ return int(time.time() * 1000) if milliseconds else int(time.time())
40
+
41
+
27
42
  def filter_params(params: dict) -> dict:
28
43
  """Фильтрует параметры запроса, удаляя None-значения.
29
44
 
@@ -220,4 +235,6 @@ def symbol_to_exchange_format(
220
235
  return symbol_upper + "M"
221
236
  else:
222
237
  return symbol_upper.replace("USDT", "-USDT")
238
+ elif exchange == Exchange.BINGX:
239
+ return symbol_upper.replace("USDT", "-USDT")
223
240
  return symbol_upper
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.14.9
3
+ Version: 0.15.2
4
4
  Summary: Unified Crypto Exchange API
5
5
  Author-email: LoveBloodAndDiamonds <ayazshakirzyanov27@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -63,6 +63,7 @@ Dynamic: license-file
63
63
  | **Mexc** | ✓ | ✓ | ✓ | | ✓ | | ✓ |
64
64
  | **Okx** | ✓ | ✓ | ✓ | | ✓ | | ✓ |
65
65
  | **Kucoin** | | | | | ✓ | | |
66
+ | **BingX** | | | | | ✓ | | |
66
67
  ---
67
68
 
68
69
 
@@ -1,25 +1,33 @@
1
- unicex/__init__.py,sha256=todVh-ePhe2HSqndToGZtpIk5fUow4pbzTFmL3X98tQ,6318
2
- unicex/enums.py,sha256=0PCSOyeTTMZ40d5x7qeJ2SfrTeUYQvPhQFw8ElbzIMM,10276
1
+ unicex/__init__.py,sha256=NRfg04EGWTx-QTH0MGEkhbT1-f5XZRvzUEJQXESXz9k,6852
2
+ unicex/enums.py,sha256=5iJo1uokNlS9FQQtomK0LiEcXuHqF9cBEg2aPAX3QDk,10296
3
3
  unicex/exceptions.py,sha256=r-xZzX78VuxVnI5pe99AM8FIiGcdIUDcF5CaTkQ4NE0,2213
4
- unicex/extra.py,sha256=Ki0ZvF88BNpnt-k-c-AgdUig80f-Yi1gTt8qqO7M5ss,13492
5
- unicex/mapper.py,sha256=yncbMCecZ3nvGtUyvWaiQAQ3RWGAAmm3MEi6Y7YJUG4,5203
4
+ unicex/extra.py,sha256=QdfM3aJJMvLmreEVog5C7VdkWZb-8O5msyXQE0sg8fM,13844
5
+ unicex/mapper.py,sha256=b4a99_VVpEBGzctUJxvxLvu8urSrIQEziCt9cKlfg6w,5331
6
6
  unicex/types.py,sha256=-ajW_vV-3Pt04PEOiTYPvJR4QtV0gYnsjD4_9bxd1xM,4980
7
- unicex/utils.py,sha256=43Sp61NJuO50HRbtBlZJW_yO_PRgp8Jgg4vxj64oRM8,8241
7
+ unicex/utils.py,sha256=SWAmU-cn1vaT9SZHZyUgN3STerSHzwZZPFEpXNTohuM,9001
8
8
  unicex/_abc/__init__.py,sha256=fxZjNFJFeFwWTXz8iSDe7eCWwE6xfFwFwAuG6l-TI8A,289
9
9
  unicex/_abc/exchange_info.py,sha256=NHBQAjknIRebyjl3musrvneN5u9vKYXjAca5PmTvJTw,9545
10
10
  unicex/_abc/uni_client.py,sha256=Ccp_zKFAzu9eUO7G-6WJnOjN61id0iSeWn6xqxMyHQ8,14992
11
11
  unicex/_abc/uni_websocket_manager.py,sha256=yYKypPkIe3rKfWBuTsS8rkwIPljpd1588CYDkeTOYqE,9905
12
12
  unicex/_base/__init__.py,sha256=0TmevATGnRB3qow6tkCR8dQKNZCWKeib6YQjNJ4a1b0,236
13
13
  unicex/_base/client.py,sha256=asIIQLZlRwwmUDvxveSv7aCvth54iiSRJdz19bxGorI,8904
14
- unicex/_base/websocket.py,sha256=haSV3dSgkT352n8knpLm_iI4ZlUGWWKFCB3k5Ua2esU,12542
14
+ unicex/_base/websocket.py,sha256=J_okxWq1CiDqU64_GlcwE7Vgq8LZKsSRYpCoXVazJGk,13279
15
15
  unicex/binance/__init__.py,sha256=sDk4ZjakRdpFMaMSpOCfqjf6ZPfAS9tlrt4WlDHtDkw,932
16
- unicex/binance/adapter.py,sha256=JbUFyjnDAFtyuYYrh90YeOvQOZQ6faim0nWS6U0NxXw,8799
16
+ unicex/binance/adapter.py,sha256=UKp2DThQ1l7qllkJmiyk29LgVhqc6p6g1kmY3ISeOlM,8186
17
17
  unicex/binance/client.py,sha256=LXHZJpX7HpaUTlQcjuGEjm3qin4mczemJnCay1LncZo,62444
18
18
  unicex/binance/exchange_info.py,sha256=LNDkgBC5HB3JxtIBi39puqDg6LIVWqIWjT-6akDxtMs,2437
19
19
  unicex/binance/uni_client.py,sha256=W4yxiU0kkJKPJjimhv4KAWreuEBwt7GgrWXefcw5BEA,8365
20
20
  unicex/binance/uni_websocket_manager.py,sha256=KnSz3o0iKx-o4ktkM7DTJZ_9xHTXFzwWnOb2pxmAe5Y,8941
21
21
  unicex/binance/user_websocket.py,sha256=jVTId_fSAF0VKKD2matPlE1fBpYT8HQ6WqHxGxcVdKw,7887
22
22
  unicex/binance/websocket_manager.py,sha256=Idrq0Qzi14QgpIG5d77S-r1h_BvRXphcxY2BT2IOQXA,45511
23
+ unicex/bingx/__init__.py,sha256=JOezgBV2uOIGA-38nT_m7eMRI56_H_J1qK-j-uo7Cso,926
24
+ unicex/bingx/adapter.py,sha256=VjTAhbw8xXdeyxIFy5tQJ07VA_DqUaO8OZx38z6VEts,11928
25
+ unicex/bingx/client.py,sha256=VPPIDKH86i1KR-6Xr8RXO7nSt7KhKNnp7Sz4spnZm-E,16899
26
+ unicex/bingx/exchange_info.py,sha256=dfUl2V7ec82eEDE_u6AuMB9dQ8iAWh03HcaUPaOo_mo,786
27
+ unicex/bingx/uni_client.py,sha256=NKJVq2ce4UbK1jnKTLOIX2X2a5LzhPh_oG6_JrH4P6o,8196
28
+ unicex/bingx/uni_websocket_manager.py,sha256=cFVR5uPdpooF6gRsAX_6cGRnud2UjXNUa82A0WW2Z08,9962
29
+ unicex/bingx/user_websocket.py,sha256=UgWt2hMaNqEUibf-1MfCIkJijx7Vb_HN8DiXaclMCog,128
30
+ unicex/bingx/websocket_manager.py,sha256=E1ga5NGDEBYdTFiqWP3C7O2XSCWO0pbdJV8heUplBcM,4976
23
31
  unicex/bitget/__init__.py,sha256=8govSOEyWjA62js-ZTQIiSYWSmcEUFSC9hVTpS8eosk,929
24
32
  unicex/bitget/adapter.py,sha256=frQBOKFsIB8mXc_Ime2-Iby_nRQlSpzXjshC5AxoDTA,7741
25
33
  unicex/bitget/client.py,sha256=0NFOixkMb0AcC5e-LytUd4Y1jxCO6Lv6-I4XlOGNtxQ,90618
@@ -67,7 +75,7 @@ unicex/mexc/exchange_info.py,sha256=z2bQsVU0ciXV2_DFkueZHo1X35KIK2alD-7ZZjNg5Kc,
67
75
  unicex/mexc/uni_client.py,sha256=_nYIl46-yvyUVKZxkSLCHRxgTnM75TmZqaxCsUp8woI,9482
68
76
  unicex/mexc/uni_websocket_manager.py,sha256=zN9U7geR1jO5VLWsjsTdITrlhyCnan5hiKO2p0gBhBQ,9572
69
77
  unicex/mexc/user_websocket.py,sha256=l77-e6i0B2btd7a5IcCytbgswnV171NqOhunTcbaq48,127
70
- unicex/mexc/websocket_manager.py,sha256=cBfgCSnSs3XrcMBXb9awnalvKutSjs97DhTyWn0ZEQk,21853
78
+ unicex/mexc/websocket_manager.py,sha256=Ok50-h9aQsdlWAX_FbCe0pvrvb0m_pUCfp__noge8hI,21871
71
79
  unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py,sha256=3bP1pGjeO-Norp7DhhdrQ4FcQTEKkCiL2mLagyoJHp8,1879
72
80
  unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py,sha256=mamFaZHymW5HhoTO8_mZz9y8kQcIsguCpaLf6xpC4Cc,1991
73
81
  unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py,sha256=HsQUfInnjlsn8SJkobN-5FK1PS_0NsIvyuT1ABtbdTY,2982
@@ -85,7 +93,7 @@ unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py,sha256=-58JJVYtPJxwMdmHW
85
93
  unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py,sha256=jSN0IgXGJ2AS3Otv2GAdu0a0zUVW1gvZ4_PRCg9BlWY,1657
86
94
  unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py,sha256=0FOMsSO4jzMQ6446yZRF69KHCj9Kd4N0J8UPN9CYwnI,1913
87
95
  unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py,sha256=_V0StMrDE7-bsdRPQdTC2XLGDGqJ5U_scx8ZjcyCGgk,3735
88
- unicex/mexc/_spot_ws_proto/__init__.py,sha256=L8Jft1713_M8CLR9drgSjLBdY_46sPT3O9zDFlxYvgc,11431
96
+ unicex/mexc/_spot_ws_proto/__init__.py,sha256=GaTX5Uys7uhFYp--_YpVOmBO5YuEyHdv1i0i0qwUvYg,11096
89
97
  unicex/okx/__init__.py,sha256=Ljbw3AP0YrPF5bIPJi_3JP3B_czR9xurYHI24rgWk9M,920
90
98
  unicex/okx/adapter.py,sha256=FSyLLHX7BlCp3chsloAdRAeUM5WBFkdaxWKCHTbXJYs,5346
91
99
  unicex/okx/client.py,sha256=N7ma49ToMGjYiTvuoV52-NaG-vLx3s087KF67dQCRBs,91079
@@ -93,9 +101,9 @@ unicex/okx/exchange_info.py,sha256=gkTwYnXgswa1FGLXdKo9qLYqZA0BS9VefpALhR4_t-Q,1
93
101
  unicex/okx/uni_client.py,sha256=E_Wod0JSGt1K6k1mAIWnOv350pELbv-nic7g1KgOuos,8694
94
102
  unicex/okx/uni_websocket_manager.py,sha256=CR877hj4pKwJbYlmKJvETl1Zlezpd81ZdzHkAMCYIwA,9571
95
103
  unicex/okx/user_websocket.py,sha256=8c9kpm-xVa729pW93OKUGLHaE9MY0uzEpjIgNIFRF80,126
96
- unicex/okx/websocket_manager.py,sha256=wROXTUDqKzOE-wDnCtXso_MC4SzfPuPols5aPg_Z3y4,26027
97
- unicex-0.14.9.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
98
- unicex-0.14.9.dist-info/METADATA,sha256=Wqf247BCSlw5Gd61MECuCR3xDi160VTfc32pMSK9tmk,11858
99
- unicex-0.14.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
- unicex-0.14.9.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
101
- unicex-0.14.9.dist-info/RECORD,,
104
+ unicex/okx/websocket_manager.py,sha256=rougqBUOV8XeJszRDtmSFSyaaphmHr1kKQk926K080w,26042
105
+ unicex-0.15.2.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
106
+ unicex-0.15.2.dist-info/METADATA,sha256=kZN2C8XGoXuKXIewIuvdf9zfzy9CHtOJVPVJ85b58Yk,11964
107
+ unicex-0.15.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
108
+ unicex-0.15.2.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
109
+ unicex-0.15.2.dist-info/RECORD,,