unicex 0.10.2__py3-none-any.whl → 0.10.3__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.
unicex/_base/websocket.py CHANGED
@@ -199,13 +199,12 @@ class Websocket:
199
199
  try:
200
200
  data = await self._queue.get() # Получаем сообщение
201
201
  await self._callback(data) # Передаем в callback
202
+ self._queue.task_done()
202
203
  except asyncio.exceptions.CancelledError:
203
204
  break
204
205
  except Exception as e:
205
206
  self._logger.error(f"Error({type(e)}) while processing message: {e}")
206
207
 
207
- self._queue.task_done()
208
-
209
208
  def _generate_ws_kwargs(self) -> dict:
210
209
  """Генерирует аргументы для запуска вебсокета."""
211
210
  ws_kwargs = {}
unicex/bybit/adapter.py CHANGED
@@ -1,5 +1,6 @@
1
1
  __all__ = ["Adapter"]
2
2
 
3
+ from typing import Any
3
4
 
4
5
  from unicex.types import (
5
6
  KlineDict,
@@ -7,6 +8,7 @@ from unicex.types import (
7
8
  OpenInterestItem,
8
9
  TickerDailyDict,
9
10
  TickerDailyItem,
11
+ TradeDict,
10
12
  )
11
13
  from unicex.utils import catch_adapter_errors, decorate_all_methods
12
14
 
@@ -125,3 +127,28 @@ class Adapter:
125
127
  key=lambda x: int(x[0]),
126
128
  )
127
129
  ]
130
+
131
+ @staticmethod
132
+ def Klines_message(raw_msg: Any) -> list[KlineDict]:
133
+ symbol = raw_msg["topic"].split(".")[-1]
134
+ return [
135
+ KlineDict(
136
+ s=symbol,
137
+ t=kline["start"],
138
+ o=float(kline["open"]),
139
+ h=float(kline["high"]),
140
+ l=float(kline["low"]),
141
+ c=float(kline["close"]),
142
+ v=float(kline["volume"]),
143
+ q=float(kline["turnover"]),
144
+ T=kline["end"],
145
+ x=kline["confirm"],
146
+ )
147
+ for kline in raw_msg["data"]
148
+ ]
149
+
150
+ @staticmethod
151
+ def aggtrades_message(raw_msg: Any) -> list[TradeDict]: ...
152
+
153
+ @staticmethod
154
+ def trades_message(raw_msg: Any) -> list[TradeDict]: ...
@@ -5,7 +5,7 @@ from typing import Any, overload
5
5
 
6
6
  from unicex._abc import IUniWebsocketManager
7
7
  from unicex._base import Websocket
8
- from unicex.enums import Timeframe
8
+ from unicex.enums import Exchange, Timeframe
9
9
  from unicex.types import LoggerLike
10
10
 
11
11
  from .adapter import Adapter
@@ -72,7 +72,13 @@ class UniWebsocketManager(IUniWebsocketManager):
72
72
  Возвращает:
73
73
  `Websocket`: Экземпляр вебсокета для управления соединением.
74
74
  """
75
- raise NotImplementedError()
75
+ return self._websocket_manager.klines(
76
+ callback=self._make_wrapper(self._adapter.Klines_message, callback),
77
+ category="spot",
78
+ interval=timeframe.to_exchange_format(Exchange.BYBIT), # type: ignore
79
+ symbol=symbol,
80
+ symbols=symbols,
81
+ )
76
82
 
77
83
  @overload
78
84
  def futures_klines(
@@ -114,7 +120,13 @@ class UniWebsocketManager(IUniWebsocketManager):
114
120
  Возвращает:
115
121
  `Websocket`: Экземпляр вебсокета.
116
122
  """
117
- raise NotImplementedError()
123
+ return self._websocket_manager.klines(
124
+ callback=self._make_wrapper(self._adapter.Klines_message, callback),
125
+ category="linear",
126
+ interval=timeframe.to_exchange_format(Exchange.BYBIT), # type: ignore
127
+ symbol=symbol,
128
+ symbols=symbols,
129
+ )
118
130
 
119
131
  @overload
120
132
  def trades(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.10.2
3
+ Version: 0.10.3
4
4
  Summary: Unified Crypto Exchange API
5
5
  Author-email: LoveBloodAndDiamonds <ayazshakirzyanov27@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -11,7 +11,7 @@ unicex/_abc/uni_client.py,sha256=ZjxK8aqCGLUUYy1UQTM9EvWn1IXwMkH2Db8sZrs1e_I,137
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=aE68PzgiFWmqteBGDEImEe0g5ig1eAaxHhEO_bbD8gc,11279
14
+ unicex/_base/websocket.py,sha256=6dFGFFspHfMGtmQtuCZHrfWFHWIWVs2l9Lim_XJJyZE,11282
15
15
  unicex/binance/__init__.py,sha256=sDk4ZjakRdpFMaMSpOCfqjf6ZPfAS9tlrt4WlDHtDkw,932
16
16
  unicex/binance/adapter.py,sha256=JbUFyjnDAFtyuYYrh90YeOvQOZQ6faim0nWS6U0NxXw,8799
17
17
  unicex/binance/client.py,sha256=1qPx0uRT4prC6saLBQ55pXDWcWTCKhYEwVIysiihPgU,60984
@@ -29,11 +29,11 @@ unicex/bitget/uni_websocket_manager.py,sha256=y-HXrREy_ruNeUzdRv5nHwBZQgbupxzp1U
29
29
  unicex/bitget/user_websocket.py,sha256=tlkv7Rmsw_FSfCJnEMOK_9jRsXRk2Ah_slqG8C-uhuo,129
30
30
  unicex/bitget/websocket_manager.py,sha256=2OhH2gKy2gN03oYeCFvf3_l6RA29dDOvpajGhbXI9Zw,9886
31
31
  unicex/bybit/__init__.py,sha256=SrMBh6K5zUt4JheWUpNUYNb1NCDr2ujTFv4IDguaGZI,926
32
- unicex/bybit/adapter.py,sha256=ZgsH8jyR-fbMHSTJO6e4stT-7l5MszGuZqMJIAEOnXY,5203
32
+ unicex/bybit/adapter.py,sha256=DkQwm28Ujyw04Ppgl-Itck-J73J0AIx7NOGsYH4M_TI,6008
33
33
  unicex/bybit/client.py,sha256=U1mCcF-Mg2spiKlp0ucIA-kDOisYLO0edRS6XC16iNo,61014
34
34
  unicex/bybit/exchange_info.py,sha256=36WiJ49TxpSdZpeMwZdjQIkRdf2wJXahdkNxVaNjNRE,351
35
35
  unicex/bybit/uni_client.py,sha256=0wmIRRgofuJXWvZMB1gHwuIEfoWuPhLJXthmK1f9w40,8382
36
- unicex/bybit/uni_websocket_manager.py,sha256=JQgZ_rl5qe30BOOMtzUYY2ZaAeQ-gYZj3HixQ1DiSpg,9328
36
+ unicex/bybit/uni_websocket_manager.py,sha256=1Y0m0ulH7W-18pSl0smlX2lXIeegy9FFqzrActCgZR0,9880
37
37
  unicex/bybit/user_websocket.py,sha256=IGGEnwyWs5jOppgK_R7SisBDvsiF1_piTswBrdQOgDg,128
38
38
  unicex/bybit/websocket_manager.py,sha256=ZBSwa_nXFvXoq2MoxE7llCYeKGyPdrXDOZXoyxbROt4,15412
39
39
  unicex/gateio/__init__.py,sha256=dsKvhQhDcw4_w0S4c9IjKkCoOg4DCUtSecEUOlfstug,929
@@ -86,8 +86,8 @@ unicex/okx/uni_client.py,sha256=E_Wod0JSGt1K6k1mAIWnOv350pELbv-nic7g1KgOuos,8694
86
86
  unicex/okx/uni_websocket_manager.py,sha256=b4f_QjA64DJmENQdIGb5IOVc7kvit7KMCdWeCmRbxGY,9326
87
87
  unicex/okx/user_websocket.py,sha256=8c9kpm-xVa729pW93OKUGLHaE9MY0uzEpjIgNIFRF80,126
88
88
  unicex/okx/websocket_manager.py,sha256=wROXTUDqKzOE-wDnCtXso_MC4SzfPuPols5aPg_Z3y4,26027
89
- unicex-0.10.2.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
90
- unicex-0.10.2.dist-info/METADATA,sha256=CQGI1PQSqsc4s0FZESmt6tcOWs8xhIgirUux3YFqMyo,9146
91
- unicex-0.10.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
92
- unicex-0.10.2.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
93
- unicex-0.10.2.dist-info/RECORD,,
89
+ unicex-0.10.3.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
90
+ unicex-0.10.3.dist-info/METADATA,sha256=VGwB7Lbj31tw3BQTvZgL5exL3kKjPHIyD72tHPmqAnM,9146
91
+ unicex-0.10.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
92
+ unicex-0.10.3.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
93
+ unicex-0.10.3.dist-info/RECORD,,