unicex 0.14.5__tar.gz → 0.14.7__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 (106) hide show
  1. {unicex-0.14.5/unicex.egg-info → unicex-0.14.7}/PKG-INFO +1 -1
  2. {unicex-0.14.5 → unicex-0.14.7}/pyproject.toml +1 -1
  3. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/uni_websocket_manager.py +2 -2
  4. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/adapter.py +32 -11
  5. {unicex-0.14.5 → unicex-0.14.7/unicex.egg-info}/PKG-INFO +1 -1
  6. {unicex-0.14.5 → unicex-0.14.7}/LICENSE +0 -0
  7. {unicex-0.14.5 → unicex-0.14.7}/README.md +0 -0
  8. {unicex-0.14.5 → unicex-0.14.7}/setup.cfg +0 -0
  9. {unicex-0.14.5 → unicex-0.14.7}/unicex/__init__.py +0 -0
  10. {unicex-0.14.5 → unicex-0.14.7}/unicex/_abc/__init__.py +0 -0
  11. {unicex-0.14.5 → unicex-0.14.7}/unicex/_abc/exchange_info.py +0 -0
  12. {unicex-0.14.5 → unicex-0.14.7}/unicex/_abc/uni_client.py +0 -0
  13. {unicex-0.14.5 → unicex-0.14.7}/unicex/_abc/uni_websocket_manager.py +0 -0
  14. {unicex-0.14.5 → unicex-0.14.7}/unicex/_base/__init__.py +0 -0
  15. {unicex-0.14.5 → unicex-0.14.7}/unicex/_base/client.py +0 -0
  16. {unicex-0.14.5 → unicex-0.14.7}/unicex/_base/websocket.py +0 -0
  17. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/__init__.py +0 -0
  18. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/adapter.py +0 -0
  19. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/client.py +0 -0
  20. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/exchange_info.py +0 -0
  21. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/uni_client.py +0 -0
  22. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/uni_websocket_manager.py +0 -0
  23. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/user_websocket.py +0 -0
  24. {unicex-0.14.5 → unicex-0.14.7}/unicex/binance/websocket_manager.py +0 -0
  25. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/__init__.py +0 -0
  26. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/adapter.py +0 -0
  27. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/client.py +0 -0
  28. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/exchange_info.py +0 -0
  29. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/uni_client.py +0 -0
  30. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/uni_websocket_manager.py +0 -0
  31. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/user_websocket.py +0 -0
  32. {unicex-0.14.5 → unicex-0.14.7}/unicex/bitget/websocket_manager.py +0 -0
  33. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/__init__.py +0 -0
  34. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/adapter.py +0 -0
  35. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/client.py +0 -0
  36. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/exchange_info.py +0 -0
  37. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/uni_client.py +0 -0
  38. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/user_websocket.py +0 -0
  39. {unicex-0.14.5 → unicex-0.14.7}/unicex/bybit/websocket_manager.py +0 -0
  40. {unicex-0.14.5 → unicex-0.14.7}/unicex/enums.py +0 -0
  41. {unicex-0.14.5 → unicex-0.14.7}/unicex/exceptions.py +0 -0
  42. {unicex-0.14.5 → unicex-0.14.7}/unicex/extra.py +0 -0
  43. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/__init__.py +0 -0
  44. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/adapter.py +0 -0
  45. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/client.py +0 -0
  46. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/exchange_info.py +0 -0
  47. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/uni_client.py +0 -0
  48. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/uni_websocket_manager.py +0 -0
  49. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/user_websocket.py +0 -0
  50. {unicex-0.14.5 → unicex-0.14.7}/unicex/gate/websocket_manager.py +0 -0
  51. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/__init__.py +0 -0
  52. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/adapter.py +0 -0
  53. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/client.py +0 -0
  54. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/exchange_info.py +0 -0
  55. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/uni_client.py +0 -0
  56. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/uni_websocket_manager.py +0 -0
  57. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/user_websocket.py +0 -0
  58. {unicex-0.14.5 → unicex-0.14.7}/unicex/hyperliquid/websocket_manager.py +0 -0
  59. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/__init__.py +0 -0
  60. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/client.py +0 -0
  61. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/exchange_info.py +0 -0
  62. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/uni_client.py +0 -0
  63. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/uni_websocket_manager.py +0 -0
  64. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/user_websocket.py +0 -0
  65. {unicex-0.14.5 → unicex-0.14.7}/unicex/kucoin/websocket_manager.py +0 -0
  66. {unicex-0.14.5 → unicex-0.14.7}/unicex/mapper.py +0 -0
  67. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/__init__.py +0 -0
  68. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py +0 -0
  69. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py +0 -0
  70. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py +0 -0
  71. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicAggreBookTickerV3Api_pb2.py +0 -0
  72. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicAggreDealsV3Api_pb2.py +0 -0
  73. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicAggreDepthsV3Api_pb2.py +0 -0
  74. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicBookTickerBatchV3Api_pb2.py +0 -0
  75. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicBookTickerV3Api_pb2.py +0 -0
  76. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicDealsV3Api_pb2.py +0 -0
  77. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicFuture_pb2.py +0 -0
  78. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsBatchV3Api_pb2.py +0 -0
  79. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsV3Api_pb2.py +0 -0
  80. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicLimitDepthsV3Api_pb2.py +0 -0
  81. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py +0 -0
  82. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py +0 -0
  83. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py +0 -0
  84. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py +0 -0
  85. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/_spot_ws_proto/__init__.py +0 -0
  86. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/adapter.py +0 -0
  87. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/client.py +0 -0
  88. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/exchange_info.py +0 -0
  89. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/uni_client.py +0 -0
  90. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/uni_websocket_manager.py +0 -0
  91. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/user_websocket.py +0 -0
  92. {unicex-0.14.5 → unicex-0.14.7}/unicex/mexc/websocket_manager.py +0 -0
  93. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/__init__.py +0 -0
  94. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/adapter.py +0 -0
  95. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/client.py +0 -0
  96. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/exchange_info.py +0 -0
  97. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/uni_client.py +0 -0
  98. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/uni_websocket_manager.py +0 -0
  99. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/user_websocket.py +0 -0
  100. {unicex-0.14.5 → unicex-0.14.7}/unicex/okx/websocket_manager.py +0 -0
  101. {unicex-0.14.5 → unicex-0.14.7}/unicex/types.py +0 -0
  102. {unicex-0.14.5 → unicex-0.14.7}/unicex/utils.py +0 -0
  103. {unicex-0.14.5 → unicex-0.14.7}/unicex.egg-info/SOURCES.txt +0 -0
  104. {unicex-0.14.5 → unicex-0.14.7}/unicex.egg-info/dependency_links.txt +0 -0
  105. {unicex-0.14.5 → unicex-0.14.7}/unicex.egg-info/requires.txt +0 -0
  106. {unicex-0.14.5 → unicex-0.14.7}/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.14.5
3
+ Version: 0.14.7
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.14.5"
7
+ version = "0.14.7"
8
8
 
9
9
  description = "Unified Crypto Exchange API "
10
10
  readme = "README.md"
@@ -211,7 +211,7 @@ class UniWebsocketManager(IUniWebsocketManager):
211
211
  Возвращает:
212
212
  `Websocket`: Экземпляр вебсокета.
213
213
  """
214
- raise NotImplementedError()
214
+ return self.trades(callback=callback, symbol=symbol, symbols=symbols) # type: ignore
215
215
 
216
216
  @overload
217
217
  def futures_trades(
@@ -292,4 +292,4 @@ class UniWebsocketManager(IUniWebsocketManager):
292
292
  Возвращает:
293
293
  `Websocket`: Экземпляр вебсокета.
294
294
  """
295
- raise NotImplementedError()
295
+ return self.futures_trades(callback=callback, symbol=symbol, symbols=symbols) # type: ignore
@@ -62,18 +62,39 @@ class Adapter:
62
62
  Возвращает:
63
63
  TickerDailyDict: Словарь, где ключ - тикер, а значение - статистика за последние 24 часа.
64
64
  """
65
- return {
66
- item["symbol"]: TickerDailyItem(
67
- p=(
68
- round((float(item["lastPrice"]) / float(item["open"]) - 1) * 100, 2)
69
- if float(item["open"]) != 0
70
- else 0.0
71
- ),
72
- v=float(item["baseVolume"]),
73
- q=float(item["quoteVolume"]),
65
+
66
+ def safe_float(value: object, default: float = 0.0) -> float:
67
+ try:
68
+ if value is None:
69
+ return default
70
+ return float(value) # type: ignore
71
+ except (TypeError, ValueError):
72
+ return default
73
+
74
+ result: dict[str, TickerDailyItem] = {}
75
+
76
+ for item in raw_data["data"]["list"]:
77
+ symbol = item.get("symbol")
78
+ if not symbol:
79
+ continue
80
+
81
+ last_price = safe_float(item.get("lastPrice"))
82
+ open_price = safe_float(item.get("open"))
83
+ base_volume = safe_float(item.get("baseVolume"))
84
+ quote_volume = safe_float(item.get("quoteVolume"))
85
+
86
+ if open_price > 0:
87
+ p = round((last_price / open_price - 1) * 100, 2)
88
+ else:
89
+ p = 0.0
90
+
91
+ result[symbol] = TickerDailyItem(
92
+ p=p,
93
+ v=base_volume,
94
+ q=quote_volume,
74
95
  )
75
- for item in raw_data["data"]["list"]
76
- }
96
+
97
+ return result
77
98
 
78
99
  @staticmethod
79
100
  def last_price(raw_data: dict) -> dict[str, float]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.14.5
3
+ Version: 0.14.7
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