unicex 0.13.0__tar.gz → 0.13.1__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.0/unicex.egg-info → unicex-0.13.1}/PKG-INFO +1 -1
  2. {unicex-0.13.0 → unicex-0.13.1}/pyproject.toml +1 -1
  3. {unicex-0.13.0 → unicex-0.13.1}/unicex/__init__.py +1 -1
  4. {unicex-0.13.0 → unicex-0.13.1}/unicex/enums.py +3 -3
  5. {unicex-0.13.0 → unicex-0.13.1}/unicex/extra.py +10 -9
  6. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/uni_client.py +2 -2
  7. {unicex-0.13.0 → unicex-0.13.1}/unicex/mapper.py +6 -6
  8. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/adapter.py +23 -11
  9. {unicex-0.13.0 → unicex-0.13.1}/unicex/utils.py +1 -1
  10. {unicex-0.13.0 → unicex-0.13.1/unicex.egg-info}/PKG-INFO +1 -1
  11. {unicex-0.13.0 → unicex-0.13.1}/unicex.egg-info/SOURCES.txt +8 -8
  12. {unicex-0.13.0 → unicex-0.13.1}/LICENSE +0 -0
  13. {unicex-0.13.0 → unicex-0.13.1}/README.md +0 -0
  14. {unicex-0.13.0 → unicex-0.13.1}/setup.cfg +0 -0
  15. {unicex-0.13.0 → unicex-0.13.1}/unicex/_abc/__init__.py +0 -0
  16. {unicex-0.13.0 → unicex-0.13.1}/unicex/_abc/exchange_info.py +0 -0
  17. {unicex-0.13.0 → unicex-0.13.1}/unicex/_abc/uni_client.py +0 -0
  18. {unicex-0.13.0 → unicex-0.13.1}/unicex/_abc/uni_websocket_manager.py +0 -0
  19. {unicex-0.13.0 → unicex-0.13.1}/unicex/_base/__init__.py +0 -0
  20. {unicex-0.13.0 → unicex-0.13.1}/unicex/_base/client.py +0 -0
  21. {unicex-0.13.0 → unicex-0.13.1}/unicex/_base/websocket.py +0 -0
  22. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/__init__.py +0 -0
  23. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/adapter.py +0 -0
  24. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/client.py +0 -0
  25. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/exchange_info.py +0 -0
  26. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/uni_client.py +0 -0
  27. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/uni_websocket_manager.py +0 -0
  28. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/user_websocket.py +0 -0
  29. {unicex-0.13.0 → unicex-0.13.1}/unicex/binance/websocket_manager.py +0 -0
  30. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/__init__.py +0 -0
  31. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/adapter.py +0 -0
  32. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/client.py +0 -0
  33. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/exchange_info.py +0 -0
  34. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/uni_client.py +0 -0
  35. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/uni_websocket_manager.py +0 -0
  36. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/user_websocket.py +0 -0
  37. {unicex-0.13.0 → unicex-0.13.1}/unicex/bitget/websocket_manager.py +0 -0
  38. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/__init__.py +0 -0
  39. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/adapter.py +0 -0
  40. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/client.py +0 -0
  41. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/exchange_info.py +0 -0
  42. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/uni_client.py +0 -0
  43. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/uni_websocket_manager.py +0 -0
  44. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/user_websocket.py +0 -0
  45. {unicex-0.13.0 → unicex-0.13.1}/unicex/bybit/websocket_manager.py +0 -0
  46. {unicex-0.13.0 → unicex-0.13.1}/unicex/exceptions.py +0 -0
  47. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/__init__.py +0 -0
  48. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/adapter.py +0 -0
  49. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/client.py +0 -0
  50. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/exchange_info.py +0 -0
  51. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/uni_websocket_manager.py +0 -0
  52. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/user_websocket.py +0 -0
  53. {unicex-0.13.0/unicex/gateio → unicex-0.13.1/unicex/gate}/websocket_manager.py +0 -0
  54. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/__init__.py +0 -0
  55. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/adapter.py +0 -0
  56. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/client.py +0 -0
  57. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/exchange_info.py +0 -0
  58. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/uni_client.py +0 -0
  59. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/uni_websocket_manager.py +0 -0
  60. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/user_websocket.py +0 -0
  61. {unicex-0.13.0 → unicex-0.13.1}/unicex/hyperliquid/websocket_manager.py +0 -0
  62. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/__init__.py +0 -0
  63. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py +0 -0
  64. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py +0 -0
  65. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py +0 -0
  66. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicAggreBookTickerV3Api_pb2.py +0 -0
  67. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicAggreDealsV3Api_pb2.py +0 -0
  68. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicAggreDepthsV3Api_pb2.py +0 -0
  69. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicBookTickerBatchV3Api_pb2.py +0 -0
  70. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicBookTickerV3Api_pb2.py +0 -0
  71. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicDealsV3Api_pb2.py +0 -0
  72. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicFuture_pb2.py +0 -0
  73. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsBatchV3Api_pb2.py +0 -0
  74. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicIncreaseDepthsV3Api_pb2.py +0 -0
  75. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicLimitDepthsV3Api_pb2.py +0 -0
  76. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py +0 -0
  77. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py +0 -0
  78. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py +0 -0
  79. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py +0 -0
  80. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/_spot_ws_proto/__init__.py +0 -0
  81. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/adapter.py +0 -0
  82. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/client.py +0 -0
  83. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/exchange_info.py +0 -0
  84. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/uni_client.py +0 -0
  85. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/uni_websocket_manager.py +0 -0
  86. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/user_websocket.py +0 -0
  87. {unicex-0.13.0 → unicex-0.13.1}/unicex/mexc/websocket_manager.py +0 -0
  88. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/__init__.py +0 -0
  89. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/client.py +0 -0
  90. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/exchange_info.py +0 -0
  91. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/uni_client.py +0 -0
  92. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/uni_websocket_manager.py +0 -0
  93. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/user_websocket.py +0 -0
  94. {unicex-0.13.0 → unicex-0.13.1}/unicex/okx/websocket_manager.py +0 -0
  95. {unicex-0.13.0 → unicex-0.13.1}/unicex/types.py +0 -0
  96. {unicex-0.13.0 → unicex-0.13.1}/unicex.egg-info/dependency_links.txt +0 -0
  97. {unicex-0.13.0 → unicex-0.13.1}/unicex.egg-info/requires.txt +0 -0
  98. {unicex-0.13.0 → unicex-0.13.1}/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.0
3
+ Version: 0.13.1
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.0"
7
+ version = "0.13.1"
8
8
 
9
9
  description = "Unified Crypto Exchange API "
10
10
  readme = "README.md"
@@ -139,7 +139,7 @@ from .bybit import (
139
139
  ExchangeInfo as BybitExchangeInfo,
140
140
  )
141
141
 
142
- from .gateio import (
142
+ from .gate import (
143
143
  Client as GateioClient,
144
144
  UniClient as GateioUniClient,
145
145
  UniWebsocketManager as GateioUniWebsocketManager,
@@ -28,7 +28,7 @@ class Exchange(StrEnum):
28
28
  BITGET = "BITGET"
29
29
  BITUNIX = "BITUNIX"
30
30
  BYBIT = "BYBIT"
31
- GATEIO = "GATEIO"
31
+ GATE = "GATE"
32
32
  HYPERLIQUID = "HYPERLIQUID"
33
33
  KCEX = "KCEX"
34
34
  MEXC = "MEXC"
@@ -194,7 +194,7 @@ class Timeframe(StrEnum):
194
194
  Timeframe.WEEK_1: "1W",
195
195
  Timeframe.MONTH_1: "1M",
196
196
  },
197
- (Exchange.GATEIO, MarketType.FUTURES): {
197
+ (Exchange.GATE, MarketType.FUTURES): {
198
198
  Timeframe.SECOND_1: "1s",
199
199
  Timeframe.MIN_1: "1m",
200
200
  Timeframe.MIN_5: "5m",
@@ -210,7 +210,7 @@ class Timeframe(StrEnum):
210
210
  Timeframe.WEEK_1: "1w",
211
211
  Timeframe.MONTH_1: "30d",
212
212
  },
213
- (Exchange.GATEIO, MarketType.SPOT): {
213
+ (Exchange.GATE, MarketType.SPOT): {
214
214
  Timeframe.MIN_1: "1m",
215
215
  Timeframe.MIN_5: "5m",
216
216
  Timeframe.MIN_15: "15m",
@@ -201,7 +201,7 @@ def generate_ex_link(exchange: Exchange, market_type: MarketType, symbol: str):
201
201
  return f"https://www.mexc.com/ru-RU/futures/{ticker}_USDT?type=linear_swap"
202
202
  else:
203
203
  return f"https://www.mexc.com/ru-RU/exchange/{ticker}_USDT"
204
- elif exchange == Exchange.GATEIO:
204
+ elif exchange == Exchange.GATE:
205
205
  if market_type == MarketType.FUTURES:
206
206
  return f"https://www.gate.com/ru/futures/USDT/{ticker}_USDT"
207
207
  else:
@@ -242,10 +242,11 @@ def generate_tv_link(exchange: Exchange, market_type: MarketType, symbol: str) -
242
242
  `str`: Ссылка для TradingView.
243
243
  """
244
244
  symbol = normalize_symbol(symbol)
245
+ exchange_str = "GATEIO" if exchange == Exchange.GATE else str(exchange)
245
246
  if market_type == MarketType.FUTURES:
246
- return f"https://www.tradingview.com/chart/?symbol={exchange}:{symbol}.P"
247
+ return f"https://www.tradingview.com/chart/?symbol={exchange_str}:{symbol}.P"
247
248
  else:
248
- return f"https://www.tradingview.com/chart/?symbol={exchange}:{symbol}"
249
+ return f"https://www.tradingview.com/chart/?symbol={exchange_str}:{symbol}"
249
250
 
250
251
 
251
252
  def generate_cg_link(exchange: Exchange, market_type: MarketType, symbol: str) -> str:
@@ -266,17 +267,17 @@ def generate_cg_link(exchange: Exchange, market_type: MarketType, symbol: str) -
266
267
  if market_type == MarketType.FUTURES:
267
268
  match exchange:
268
269
  case Exchange.OKX:
269
- return f"{base_url}/{exchange.upper()}_{symbol.replace('USDT', '-USDT')}-SWAP"
270
+ return f"{base_url}/OKX_{symbol.replace('USDT', '-USDT')}-SWAP"
270
271
  case Exchange.MEXC:
271
- return f"{base_url}/{exchange.upper()}_{symbol.replace('USDT', '_USDT')}"
272
+ return f"{base_url}/MEXC_{symbol.replace('USDT', '_USDT')}"
272
273
  case Exchange.BITGET:
273
- return f"{base_url}/{exchange.capitalize()}_{symbol}_UMCBL"
274
- case Exchange.GATEIO:
274
+ return f"{base_url}/Bitget_{symbol}_UMCBL"
275
+ case Exchange.GATE:
275
276
  return f"{base_url}/Gate_{symbol.replace('USDT', '_USDT')}"
276
277
  case Exchange.BITUNIX:
277
- return f"{base_url}/{exchange.capitalize()}_{symbol}"
278
+ return f"{base_url}/Bitunix_{symbol}"
278
279
  case Exchange.HYPERLIQUID:
279
- return f"{base_url}/{exchange.capitalize()}_{symbol.replace('USDT', '-USD')}"
280
+ return f"{base_url}/Hyperliquid_{symbol.replace('USDT', '-USD')}"
280
281
  case _:
281
282
  return f"{base_url}/{exchange.capitalize()}_{symbol}"
282
283
  else:
@@ -104,7 +104,7 @@ class UniClient(IUniClient[Client]):
104
104
  list[KlineDict]: Список свечей для тикера.
105
105
  """
106
106
  interval = (
107
- interval.to_exchange_format(Exchange.GATEIO, MarketType.SPOT)
107
+ interval.to_exchange_format(Exchange.GATE, MarketType.SPOT)
108
108
  if isinstance(interval, Timeframe)
109
109
  else interval
110
110
  )
@@ -138,7 +138,7 @@ class UniClient(IUniClient[Client]):
138
138
  list[KlineDict]: Список свечей для тикера.
139
139
  """
140
140
  interval = (
141
- interval.to_exchange_format(Exchange.GATEIO, MarketType.FUTURES)
141
+ interval.to_exchange_format(Exchange.GATE, MarketType.FUTURES)
142
142
  if isinstance(interval, Timeframe)
143
143
  else interval
144
144
  )
@@ -19,9 +19,9 @@ from .bybit import UniClient as BybitUniClient
19
19
  from .bybit import UniWebsocketManager as BybitUniWebsocketManager
20
20
  from .enums import Exchange
21
21
  from .exceptions import NotSupported
22
- from .gateio import ExchangeInfo as GateioExchangeInfo
23
- from .gateio import UniClient as GateioUniClient
24
- from .gateio import UniWebsocketManager as GateioUniWebsocketManager
22
+ from .gate import ExchangeInfo as GateioExchangeInfo
23
+ from .gate import UniClient as GateioUniClient
24
+ from .gate import UniWebsocketManager as GateioUniWebsocketManager
25
25
  from .hyperliquid import ExchangeInfo as HyperliquidExchangeInfo
26
26
  from .hyperliquid import UniClient as HyperliquidUniClient
27
27
  from .hyperliquid import UniWebsocketManager as HyperliquidUniWebsocketManager
@@ -36,7 +36,7 @@ _UNI_CLIENT_MAPPER: dict[Exchange, type[IUniClient]] = {
36
36
  Exchange.BINANCE: BinanceUniClient,
37
37
  Exchange.BITGET: BitgetUniClient,
38
38
  Exchange.BYBIT: BybitUniClient,
39
- Exchange.GATEIO: GateioUniClient,
39
+ Exchange.GATE: GateioUniClient,
40
40
  Exchange.HYPERLIQUID: HyperliquidUniClient,
41
41
  Exchange.MEXC: MexcUniClient,
42
42
  Exchange.OKX: OkxUniClient,
@@ -47,7 +47,7 @@ _UNI_WS_MANAGER_MAPPER: dict[Exchange, type[IUniWebsocketManager]] = {
47
47
  Exchange.BINANCE: BinanceUniWebsocketManager,
48
48
  Exchange.BITGET: BitgetUniWebsocketManager,
49
49
  Exchange.BYBIT: BybitUniWebsocketManager,
50
- Exchange.GATEIO: GateioUniWebsocketManager,
50
+ Exchange.GATE: GateioUniWebsocketManager,
51
51
  Exchange.HYPERLIQUID: HyperliquidUniWebsocketManager,
52
52
  Exchange.MEXC: MexcUniWebsocketManager,
53
53
  Exchange.OKX: OkxUniWebsocketManager,
@@ -58,7 +58,7 @@ _EXCHANGE_INFO_MAPPER: dict[Exchange, type[IExchangeInfo]] = {
58
58
  Exchange.BINANCE: BinanceExchangeInfo,
59
59
  Exchange.BITGET: BitgetExchangeInfo,
60
60
  Exchange.BYBIT: BybitExchangeInfo,
61
- Exchange.GATEIO: GateioExchangeInfo,
61
+ Exchange.GATE: GateioExchangeInfo,
62
62
  Exchange.HYPERLIQUID: HyperliquidExchangeInfo,
63
63
  Exchange.MEXC: MexcExchangeInfo,
64
64
  Exchange.OKX: OkxExchangeInfo,
@@ -57,16 +57,22 @@ class Adapter:
57
57
 
58
58
  # NOTE: Обратите внимание, изменение цены в случае с OKX возвращается относительно открытия 1 day свечи.
59
59
  """
60
- return {
61
- item["instId"]: TickerDailyItem(
62
- p=round(
63
- (float(item["last"]) - float(item["open24h"])) / float(item["open24h"]) * 100, 2
64
- ),
65
- v=float(item["vol24h"]),
66
- q=float(item["volCcy24h"]),
67
- )
68
- for item in raw_data["data"]
69
- }
60
+ result = {}
61
+ for item in raw_data["data"]:
62
+ try:
63
+ result[item["instId"]] = TickerDailyItem(
64
+ p=round(
65
+ (float(item["last"]) - float(item["open24h"]))
66
+ / float(item["open24h"])
67
+ * 100,
68
+ 2,
69
+ ),
70
+ v=float(item["vol24h"]),
71
+ q=float(item["volCcy24h"]),
72
+ )
73
+ except (ValueError, TypeError, KeyError):
74
+ continue
75
+ return result
70
76
 
71
77
  @staticmethod
72
78
  def futures_ticker_24hr(raw_data: dict) -> TickerDailyDict:
@@ -88,7 +94,13 @@ class Adapter:
88
94
  @staticmethod
89
95
  def last_price(raw_data: dict) -> dict[str, float]:
90
96
  """Преобразует данные о последней цене в унифицированный формат."""
91
- return {item["instId"]: float(item["last"]) for item in raw_data["data"]}
97
+ result = {}
98
+ for item in raw_data["data"]:
99
+ try:
100
+ result[item["instId"]] = float(item["last"])
101
+ except (ValueError, TypeError, KeyError):
102
+ continue
103
+ return result
92
104
 
93
105
  @staticmethod
94
106
  def klines(raw_data: dict, symbol: str) -> list[KlineDict]:
@@ -208,7 +208,7 @@ def symbol_to_exchange_format(
208
208
  return symbol_upper.replace("USDT", "-USDT-SWAP")
209
209
  elif market_type == MarketType.SPOT:
210
210
  return symbol_upper.replace("USDT", "-USDT")
211
- elif exchange == Exchange.GATEIO:
211
+ elif exchange == Exchange.GATE:
212
212
  return symbol_upper.replace("USDT", "_USDT")
213
213
  elif exchange == Exchange.HYPERLIQUID:
214
214
  if market_type == MarketType.FUTURES:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.13.0
3
+ Version: 0.13.1
4
4
  Summary: Unified Crypto Exchange API
5
5
  Author-email: LoveBloodAndDiamonds <ayazshakirzyanov27@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -44,14 +44,14 @@ unicex/bybit/uni_client.py
44
44
  unicex/bybit/uni_websocket_manager.py
45
45
  unicex/bybit/user_websocket.py
46
46
  unicex/bybit/websocket_manager.py
47
- unicex/gateio/__init__.py
48
- unicex/gateio/adapter.py
49
- unicex/gateio/client.py
50
- unicex/gateio/exchange_info.py
51
- unicex/gateio/uni_client.py
52
- unicex/gateio/uni_websocket_manager.py
53
- unicex/gateio/user_websocket.py
54
- unicex/gateio/websocket_manager.py
47
+ unicex/gate/__init__.py
48
+ unicex/gate/adapter.py
49
+ unicex/gate/client.py
50
+ unicex/gate/exchange_info.py
51
+ unicex/gate/uni_client.py
52
+ unicex/gate/uni_websocket_manager.py
53
+ unicex/gate/user_websocket.py
54
+ unicex/gate/websocket_manager.py
55
55
  unicex/hyperliquid/__init__.py
56
56
  unicex/hyperliquid/adapter.py
57
57
  unicex/hyperliquid/client.py
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