unicex 0.16.2__tar.gz → 0.16.5__tar.gz

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 (114) hide show
  1. {unicex-0.16.2/unicex.egg-info → unicex-0.16.5}/PKG-INFO +1 -1
  2. {unicex-0.16.2 → unicex-0.16.5}/pyproject.toml +1 -1
  3. {unicex-0.16.2 → unicex-0.16.5}/unicex/_base/websocket.py +5 -0
  4. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/uni_websocket_manager.py +25 -0
  5. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/websocket_manager.py +1 -0
  6. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/uni_client.py +0 -1
  7. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/uni_client.py +0 -1
  8. {unicex-0.16.2 → unicex-0.16.5/unicex.egg-info}/PKG-INFO +1 -1
  9. {unicex-0.16.2 → unicex-0.16.5}/LICENSE +0 -0
  10. {unicex-0.16.2 → unicex-0.16.5}/README.md +0 -0
  11. {unicex-0.16.2 → unicex-0.16.5}/setup.cfg +0 -0
  12. {unicex-0.16.2 → unicex-0.16.5}/unicex/__init__.py +0 -0
  13. {unicex-0.16.2 → unicex-0.16.5}/unicex/_abc/__init__.py +0 -0
  14. {unicex-0.16.2 → unicex-0.16.5}/unicex/_abc/exchange_info.py +0 -0
  15. {unicex-0.16.2 → unicex-0.16.5}/unicex/_abc/uni_client.py +0 -0
  16. {unicex-0.16.2 → unicex-0.16.5}/unicex/_abc/uni_websocket_manager.py +0 -0
  17. {unicex-0.16.2 → unicex-0.16.5}/unicex/_base/__init__.py +0 -0
  18. {unicex-0.16.2 → unicex-0.16.5}/unicex/_base/client.py +0 -0
  19. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/__init__.py +0 -0
  20. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/adapter.py +0 -0
  21. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/client.py +0 -0
  22. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/exchange_info.py +0 -0
  23. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/uni_client.py +0 -0
  24. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/uni_websocket_manager.py +0 -0
  25. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/user_websocket.py +0 -0
  26. {unicex-0.16.2 → unicex-0.16.5}/unicex/binance/websocket_manager.py +0 -0
  27. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/__init__.py +0 -0
  28. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/adapter.py +0 -0
  29. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/client.py +0 -0
  30. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/exchange_info.py +0 -0
  31. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/uni_client.py +0 -0
  32. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/uni_websocket_manager.py +0 -0
  33. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/user_websocket.py +0 -0
  34. {unicex-0.16.2 → unicex-0.16.5}/unicex/bingx/websocket_manager.py +0 -0
  35. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/__init__.py +0 -0
  36. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/adapter.py +0 -0
  37. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/client.py +0 -0
  38. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/exchange_info.py +0 -0
  39. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/uni_client.py +0 -0
  40. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/uni_websocket_manager.py +0 -0
  41. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/user_websocket.py +0 -0
  42. {unicex-0.16.2 → unicex-0.16.5}/unicex/bitget/websocket_manager.py +0 -0
  43. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/__init__.py +0 -0
  44. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/adapter.py +0 -0
  45. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/client.py +0 -0
  46. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/exchange_info.py +0 -0
  47. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/uni_client.py +0 -0
  48. {unicex-0.16.2 → unicex-0.16.5}/unicex/bybit/user_websocket.py +0 -0
  49. {unicex-0.16.2 → unicex-0.16.5}/unicex/enums.py +0 -0
  50. {unicex-0.16.2 → unicex-0.16.5}/unicex/exceptions.py +0 -0
  51. {unicex-0.16.2 → unicex-0.16.5}/unicex/extra.py +0 -0
  52. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/__init__.py +0 -0
  53. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/adapter.py +0 -0
  54. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/client.py +0 -0
  55. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/exchange_info.py +0 -0
  56. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/uni_websocket_manager.py +0 -0
  57. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/user_websocket.py +0 -0
  58. {unicex-0.16.2 → unicex-0.16.5}/unicex/gate/websocket_manager.py +0 -0
  59. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/__init__.py +0 -0
  60. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/adapter.py +0 -0
  61. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/client.py +0 -0
  62. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/exchange_info.py +0 -0
  63. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/uni_client.py +0 -0
  64. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/uni_websocket_manager.py +0 -0
  65. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/user_websocket.py +0 -0
  66. {unicex-0.16.2 → unicex-0.16.5}/unicex/hyperliquid/websocket_manager.py +0 -0
  67. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/__init__.py +0 -0
  68. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/adapter.py +0 -0
  69. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/client.py +0 -0
  70. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/exchange_info.py +0 -0
  71. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/uni_client.py +0 -0
  72. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/uni_websocket_manager.py +0 -0
  73. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/user_websocket.py +0 -0
  74. {unicex-0.16.2 → unicex-0.16.5}/unicex/kucoin/websocket_manager.py +0 -0
  75. {unicex-0.16.2 → unicex-0.16.5}/unicex/mapper.py +0 -0
  76. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/__init__.py +0 -0
  77. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py +0 -0
  78. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py +0 -0
  79. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py +0 -0
  80. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicAggreBookTickerV3Api_pb2.py +0 -0
  81. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicAggreDealsV3Api_pb2.py +0 -0
  82. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicAggreDepthsV3Api_pb2.py +0 -0
  83. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicBookTickerBatchV3Api_pb2.py +0 -0
  84. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicBookTickerV3Api_pb2.py +0 -0
  85. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicDealsV3Api_pb2.py +0 -0
  86. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicFuture_pb2.py +0 -0
  87. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsBatchV3Api_pb2.py +0 -0
  88. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsV3Api_pb2.py +0 -0
  89. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicLimitDepthsV3Api_pb2.py +0 -0
  90. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py +0 -0
  91. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py +0 -0
  92. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py +0 -0
  93. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py +0 -0
  94. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/_spot_ws_proto/__init__.py +0 -0
  95. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/adapter.py +0 -0
  96. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/client.py +0 -0
  97. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/exchange_info.py +0 -0
  98. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/uni_websocket_manager.py +0 -0
  99. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/user_websocket.py +0 -0
  100. {unicex-0.16.2 → unicex-0.16.5}/unicex/mexc/websocket_manager.py +0 -0
  101. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/__init__.py +0 -0
  102. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/adapter.py +0 -0
  103. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/client.py +0 -0
  104. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/exchange_info.py +0 -0
  105. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/uni_client.py +0 -0
  106. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/uni_websocket_manager.py +0 -0
  107. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/user_websocket.py +0 -0
  108. {unicex-0.16.2 → unicex-0.16.5}/unicex/okx/websocket_manager.py +0 -0
  109. {unicex-0.16.2 → unicex-0.16.5}/unicex/types.py +0 -0
  110. {unicex-0.16.2 → unicex-0.16.5}/unicex/utils.py +0 -0
  111. {unicex-0.16.2 → unicex-0.16.5}/unicex.egg-info/SOURCES.txt +0 -0
  112. {unicex-0.16.2 → unicex-0.16.5}/unicex.egg-info/dependency_links.txt +0 -0
  113. {unicex-0.16.2 → unicex-0.16.5}/unicex.egg-info/requires.txt +0 -0
  114. {unicex-0.16.2 → unicex-0.16.5}/unicex.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.16.2
3
+ Version: 0.16.5
4
4
  Summary: Unified Crypto Exchange API
5
5
  Author-email: LoveBloodAndDiamonds <ayazshakirzyanov27@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -4,7 +4,7 @@ name = "unicex"
4
4
  # • PATCH (x.y.Z) → увеличивается при багфиксе, который не ломает совместимость.
5
5
  # • MINOR (x.Y.z) → увеличивается при добавлении новой функциональности, но без ломающих изменений (backward-compatible).
6
6
  # • MAJOR (X.y.z) → увеличивается при изменениях, которые ломают обратную совместимость.
7
- version = "0.16.2"
7
+ version = "0.16.5"
8
8
 
9
9
  description = "Unified Crypto Exchange API "
10
10
  readme = "README.md"
@@ -103,6 +103,11 @@ class Websocket:
103
103
  await asyncio.sleep(self._reconnect_timeout)
104
104
  await self.start()
105
105
 
106
+ @property
107
+ def running(self) -> bool:
108
+ """Возвращает статус вебсокета."""
109
+ return self._running
110
+
106
111
  async def _connect(self) -> None:
107
112
  """Подключается к вебсокету и настраивает соединение."""
108
113
  self._logger.debug(f"Establishing connection with {self._url}")
@@ -293,3 +293,28 @@ class UniWebsocketManager(IUniWebsocketManager):
293
293
  `Websocket`: Экземпляр вебсокета.
294
294
  """
295
295
  return self.futures_trades(callback=callback, symbol=symbol, symbols=symbols) # type: ignore
296
+
297
+ def liquidations(
298
+ self,
299
+ callback: CallbackType,
300
+ symbol: str | None = None,
301
+ symbols: Sequence[str] | None = None,
302
+ ) -> Websocket:
303
+ """Открывает стрим ликвидаций (futures) с унификацией сообщений.
304
+
305
+ Параметры:
306
+ callback (`CallbackType`): Асинхронная функция обратного вызова для обработки сообщений.
307
+ symbol (`str | None`): Один символ для подписки.
308
+ symbols (`Sequence[str] | None`): Список символов для мультиплекс‑подключения.
309
+
310
+ Должен быть указан либо `symbol`, либо `symbols`.
311
+
312
+ Возвращает:
313
+ `Websocket`: Экземпляр вебсокета.
314
+ """
315
+ return self._websocket_manager.all_liquidation(
316
+ callback=self._make_wrapper(self._adapter.liquidations_message, callback),
317
+ category="linear",
318
+ symbol=symbol,
319
+ symbols=symbols,
320
+ )
@@ -318,5 +318,6 @@ class WebsocketManager:
318
318
  callback=callback,
319
319
  url=url,
320
320
  subscription_messages=subscription_messages,
321
+ no_message_reconnect_timeout=60 * 10,
321
322
  **self._ws_kwargs,
322
323
  )
@@ -174,7 +174,6 @@ class UniClient(IUniClient[Client]):
174
174
  items = raw_data if isinstance(raw_data, list) else [raw_data]
175
175
  adapted_data = Adapter.funding_rate(raw_data=items) # type: ignore[reportArgumentType]
176
176
  return adapted_data[symbol] if symbol else adapted_data
177
- return adapted_data
178
177
 
179
178
  @overload
180
179
  async def open_interest(self, symbol: str) -> OpenInterestItem: ...
@@ -181,7 +181,6 @@ class UniClient(IUniClient[Client]):
181
181
  raw_data = await self._client.futures_ticker()
182
182
  adapted_data = Adapter.funding_rate(raw_data=raw_data) # type: ignore[reportArgumentType]
183
183
  return adapted_data[symbol] if symbol else adapted_data
184
- return adapted_data
185
184
 
186
185
  @overload
187
186
  async def open_interest(self, symbol: str) -> OpenInterestItem: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.16.2
3
+ Version: 0.16.5
4
4
  Summary: Unified Crypto Exchange API
5
5
  Author-email: LoveBloodAndDiamonds <ayazshakirzyanov27@gmail.com>
6
6
  License: BSD 3-Clause License
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes