unicex 0.13.5__tar.gz → 0.13.6__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 (98) hide show
  1. {unicex-0.13.5/unicex.egg-info → unicex-0.13.6}/PKG-INFO +1 -1
  2. {unicex-0.13.5 → unicex-0.13.6}/pyproject.toml +1 -1
  3. {unicex-0.13.5 → unicex-0.13.6}/unicex/_base/websocket.py +15 -8
  4. {unicex-0.13.5 → unicex-0.13.6/unicex.egg-info}/PKG-INFO +1 -1
  5. {unicex-0.13.5 → unicex-0.13.6}/LICENSE +0 -0
  6. {unicex-0.13.5 → unicex-0.13.6}/README.md +0 -0
  7. {unicex-0.13.5 → unicex-0.13.6}/setup.cfg +0 -0
  8. {unicex-0.13.5 → unicex-0.13.6}/unicex/__init__.py +0 -0
  9. {unicex-0.13.5 → unicex-0.13.6}/unicex/_abc/__init__.py +0 -0
  10. {unicex-0.13.5 → unicex-0.13.6}/unicex/_abc/exchange_info.py +0 -0
  11. {unicex-0.13.5 → unicex-0.13.6}/unicex/_abc/uni_client.py +0 -0
  12. {unicex-0.13.5 → unicex-0.13.6}/unicex/_abc/uni_websocket_manager.py +0 -0
  13. {unicex-0.13.5 → unicex-0.13.6}/unicex/_base/__init__.py +0 -0
  14. {unicex-0.13.5 → unicex-0.13.6}/unicex/_base/client.py +0 -0
  15. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/__init__.py +0 -0
  16. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/adapter.py +0 -0
  17. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/client.py +0 -0
  18. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/exchange_info.py +0 -0
  19. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/uni_client.py +0 -0
  20. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/uni_websocket_manager.py +0 -0
  21. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/user_websocket.py +0 -0
  22. {unicex-0.13.5 → unicex-0.13.6}/unicex/binance/websocket_manager.py +0 -0
  23. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/__init__.py +0 -0
  24. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/adapter.py +0 -0
  25. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/client.py +0 -0
  26. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/exchange_info.py +0 -0
  27. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/uni_client.py +0 -0
  28. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/uni_websocket_manager.py +0 -0
  29. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/user_websocket.py +0 -0
  30. {unicex-0.13.5 → unicex-0.13.6}/unicex/bitget/websocket_manager.py +0 -0
  31. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/__init__.py +0 -0
  32. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/adapter.py +0 -0
  33. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/client.py +0 -0
  34. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/exchange_info.py +0 -0
  35. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/uni_client.py +0 -0
  36. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/uni_websocket_manager.py +0 -0
  37. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/user_websocket.py +0 -0
  38. {unicex-0.13.5 → unicex-0.13.6}/unicex/bybit/websocket_manager.py +0 -0
  39. {unicex-0.13.5 → unicex-0.13.6}/unicex/enums.py +0 -0
  40. {unicex-0.13.5 → unicex-0.13.6}/unicex/exceptions.py +0 -0
  41. {unicex-0.13.5 → unicex-0.13.6}/unicex/extra.py +0 -0
  42. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/__init__.py +0 -0
  43. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/adapter.py +0 -0
  44. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/client.py +0 -0
  45. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/exchange_info.py +0 -0
  46. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/uni_client.py +0 -0
  47. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/uni_websocket_manager.py +0 -0
  48. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/user_websocket.py +0 -0
  49. {unicex-0.13.5 → unicex-0.13.6}/unicex/gate/websocket_manager.py +0 -0
  50. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/__init__.py +0 -0
  51. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/adapter.py +0 -0
  52. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/client.py +0 -0
  53. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/exchange_info.py +0 -0
  54. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/uni_client.py +0 -0
  55. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/uni_websocket_manager.py +0 -0
  56. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/user_websocket.py +0 -0
  57. {unicex-0.13.5 → unicex-0.13.6}/unicex/hyperliquid/websocket_manager.py +0 -0
  58. {unicex-0.13.5 → unicex-0.13.6}/unicex/mapper.py +0 -0
  59. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/__init__.py +0 -0
  60. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py +0 -0
  61. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py +0 -0
  62. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py +0 -0
  63. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicAggreBookTickerV3Api_pb2.py +0 -0
  64. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicAggreDealsV3Api_pb2.py +0 -0
  65. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicAggreDepthsV3Api_pb2.py +0 -0
  66. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicBookTickerBatchV3Api_pb2.py +0 -0
  67. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicBookTickerV3Api_pb2.py +0 -0
  68. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicDealsV3Api_pb2.py +0 -0
  69. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicFuture_pb2.py +0 -0
  70. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsBatchV3Api_pb2.py +0 -0
  71. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsV3Api_pb2.py +0 -0
  72. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicLimitDepthsV3Api_pb2.py +0 -0
  73. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py +0 -0
  74. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py +0 -0
  75. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py +0 -0
  76. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py +0 -0
  77. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/_spot_ws_proto/__init__.py +0 -0
  78. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/adapter.py +0 -0
  79. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/client.py +0 -0
  80. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/exchange_info.py +0 -0
  81. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/uni_client.py +0 -0
  82. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/uni_websocket_manager.py +0 -0
  83. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/user_websocket.py +0 -0
  84. {unicex-0.13.5 → unicex-0.13.6}/unicex/mexc/websocket_manager.py +0 -0
  85. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/__init__.py +0 -0
  86. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/adapter.py +0 -0
  87. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/client.py +0 -0
  88. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/exchange_info.py +0 -0
  89. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/uni_client.py +0 -0
  90. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/uni_websocket_manager.py +0 -0
  91. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/user_websocket.py +0 -0
  92. {unicex-0.13.5 → unicex-0.13.6}/unicex/okx/websocket_manager.py +0 -0
  93. {unicex-0.13.5 → unicex-0.13.6}/unicex/types.py +0 -0
  94. {unicex-0.13.5 → unicex-0.13.6}/unicex/utils.py +0 -0
  95. {unicex-0.13.5 → unicex-0.13.6}/unicex.egg-info/SOURCES.txt +0 -0
  96. {unicex-0.13.5 → unicex-0.13.6}/unicex.egg-info/dependency_links.txt +0 -0
  97. {unicex-0.13.5 → unicex-0.13.6}/unicex.egg-info/requires.txt +0 -0
  98. {unicex-0.13.5 → unicex-0.13.6}/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.13.5
3
+ Version: 0.13.6
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.13.5"
7
+ version = "0.13.6"
8
8
 
9
9
  description = "Unified Crypto Exchange API "
10
10
  readme = "README.md"
@@ -179,18 +179,25 @@ class Websocket:
179
179
 
180
180
  async def _after_disconnect(self) -> None:
181
181
  """Вызывается после отключения от вебсокета."""
182
- # Останавливаем воркеров
182
+ current_task = asyncio.current_task()
183
+
184
+ # Останавливаем воркеров, исключая задачу, которая уже выполняет остановку
185
+ tasks_to_wait: list[asyncio.Task] = []
183
186
  for task in self._tasks:
187
+ if task is current_task:
188
+ continue
189
+
184
190
  task.cancel()
191
+ tasks_to_wait.append(task)
185
192
 
186
193
  # Дожидаемся завершения задач (в т.ч. воркеров)
187
- for task in self._tasks:
188
- try:
189
- await task
190
- except asyncio.CancelledError:
191
- pass
192
- except Exception as e:
193
- self._logger.warning(f"Worker raised during shutdown: {e}")
194
+ if tasks_to_wait:
195
+ results = await asyncio.gather(*tasks_to_wait, return_exceptions=True)
196
+ for task_result in results:
197
+ if isinstance(task_result, asyncio.CancelledError):
198
+ continue
199
+ if isinstance(task_result, Exception):
200
+ self._logger.warning(f"Worker raised during shutdown: {task_result}")
194
201
 
195
202
  self._tasks.clear()
196
203
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.13.5
3
+ Version: 0.13.6
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