unicex 0.14.1__py3-none-any.whl → 0.14.2__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/kucoin/adapter.py CHANGED
@@ -5,6 +5,8 @@ from typing import Any
5
5
  from unicex.types import OpenInterestDict, OpenInterestItem, TickerDailyDict, TickerDailyItem
6
6
  from unicex.utils import catch_adapter_errors, decorate_all_methods
7
7
 
8
+ from .exchange_info import ExchangeInfo
9
+
8
10
 
9
11
  @decorate_all_methods(catch_adapter_errors)
10
12
  class Adapter:
@@ -75,7 +77,15 @@ class Adapter:
75
77
  return {
76
78
  item["symbol"]: OpenInterestItem(
77
79
  t=item["ts"],
78
- v=float(item["openInterest"]),
80
+ v=float(item["openInterest"]) * Adapter._get_contract_size(item["symbol"]),
79
81
  )
80
82
  for item in raw_data["data"]
81
83
  }
84
+
85
+ @staticmethod
86
+ def _get_contract_size(symbol: str) -> float:
87
+ """Возвращает размер контракта для указанного символа тикера."""
88
+ try:
89
+ return ExchangeInfo.get_futures_ticker_info(symbol)["contract_size"] or 1
90
+ except: # noqa
91
+ return 1
unicex/kucoin/client.py CHANGED
@@ -12,14 +12,21 @@ class Client(BaseClient):
12
12
  _BASE_URL: str = "https://api.kucoin.com"
13
13
  """Базовый URL для запросов."""
14
14
 
15
- async def open_interest(self) -> dict[str, Any]:
16
- """Получение открытого интереса.
15
+ async def symbol(
16
+ self,
17
+ trade_type: Literal["SPOT", "FUTURES", "ISOLATED", "CROSS"],
18
+ symbol: str | None = None,
19
+ ) -> dict[str, Any]:
20
+ """Получение символов и информации о них.
17
21
 
18
- https://www.kucoin.com/docs-new/3476287e0
22
+ https://www.kucoin.com/docs-new/rest/ua/get-symbol
19
23
  """
20
- url = self._BASE_URL + "/api/ua/v1/market/open-interest"
24
+ url = self._BASE_URL + "/api/ua/v1/market/instrument"
25
+ params = {"tradeType": trade_type}
26
+ if symbol:
27
+ params["symbol"] = symbol
21
28
 
22
- return await self._make_request("GET", url)
29
+ return await self._make_request("GET", url, params=params)
23
30
 
24
31
  async def ticker(
25
32
  self,
@@ -36,3 +43,12 @@ class Client(BaseClient):
36
43
  params["symbol"] = symbol
37
44
 
38
45
  return await self._make_request("GET", url, params=params)
46
+
47
+ async def open_interest(self) -> dict[str, Any]:
48
+ """Получение открытого интереса.
49
+
50
+ https://www.kucoin.com/docs-new/3476287e0
51
+ """
52
+ url = self._BASE_URL + "/api/ua/v1/market/open-interest"
53
+
54
+ return await self._make_request("GET", url)
@@ -3,6 +3,9 @@ __all__ = ["ExchangeInfo"]
3
3
  import aiohttp
4
4
 
5
5
  from unicex._abc import IExchangeInfo
6
+ from unicex.types import TickerInfoItem
7
+
8
+ from .client import Client
6
9
 
7
10
 
8
11
  class ExchangeInfo(IExchangeInfo):
@@ -14,9 +17,31 @@ class ExchangeInfo(IExchangeInfo):
14
17
  @classmethod
15
18
  async def _load_spot_exchange_info(cls, session: aiohttp.ClientSession) -> None:
16
19
  """Загружает информацию о бирже для спотового рынка."""
17
- ...
20
+ tickers_info = {}
21
+ exchange_info = await Client(session).symbol("SPOT")
22
+ for el in exchange_info["data"]["list"]:
23
+ tickers_info[el["symbol"]] = TickerInfoItem(
24
+ tick_precision=None,
25
+ tick_step=None,
26
+ size_precision=None,
27
+ size_step=None,
28
+ contract_size=1,
29
+ )
30
+
31
+ cls._tickers_info = tickers_info
18
32
 
19
33
  @classmethod
20
34
  async def _load_futures_exchange_info(cls, session: aiohttp.ClientSession) -> None:
21
35
  """Загружает информацию о бирже для фьючерсного рынка."""
22
- ...
36
+ tickers_info = {}
37
+ exchange_info = await Client(session).symbol("FUTURES")
38
+ for el in exchange_info["data"]["list"]:
39
+ tickers_info[el["symbol"]] = TickerInfoItem(
40
+ tick_precision=None,
41
+ tick_step=None,
42
+ size_precision=None,
43
+ size_step=None,
44
+ contract_size=float(el["unitSize"]),
45
+ )
46
+
47
+ cls._futures_tickers_info = tickers_info
unicex/okx/adapter.py CHANGED
@@ -10,8 +10,6 @@ from unicex.types import (
10
10
  )
11
11
  from unicex.utils import catch_adapter_errors, decorate_all_methods
12
12
 
13
- from .exchange_info import ExchangeInfo
14
-
15
13
 
16
14
  @decorate_all_methods(catch_adapter_errors)
17
15
  class Adapter:
@@ -140,11 +138,3 @@ class Adapter:
140
138
  )
141
139
  for item in raw_data["data"]
142
140
  }
143
-
144
- @staticmethod
145
- def _get_contract_size(symbol: str) -> float:
146
- """Возвращает размер контракта для указанного символа тикера."""
147
- try:
148
- return ExchangeInfo.get_futures_ticker_info(symbol)["contract_size"] or 1
149
- except: # noqa
150
- return 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.14.1
3
+ Version: 0.14.2
4
4
  Summary: Unified Crypto Exchange API
5
5
  Author-email: LoveBloodAndDiamonds <ayazshakirzyanov27@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -53,9 +53,9 @@ unicex/hyperliquid/uni_websocket_manager.py,sha256=AzR_8Aq98NkCA1oc2IiH02ysMOYLa
53
53
  unicex/hyperliquid/user_websocket.py,sha256=BKD9ap2bx5DwpkkwwecfOTVedrZBR9eMAITgCBgg02w,134
54
54
  unicex/hyperliquid/websocket_manager.py,sha256=mlsQYykFHfQr-k6AZ3b6JfK7DnnhGtt4MRemZg4O9X4,17991
55
55
  unicex/kucoin/__init__.py,sha256=7RSMUDiqjmj8T1cvotlRu8LKH-Ok9UlajSrlXyq1mnc,929
56
- unicex/kucoin/adapter.py,sha256=dPUFJFIbNmxXfB9qsYlGIYjDttVjX7YSGGoYAJ6jY5w,3531
57
- unicex/kucoin/client.py,sha256=z37R2vOt4YsJFMI0sG-lRJgrPmN3hSkkYFccErqzH4o,1104
58
- unicex/kucoin/exchange_info.py,sha256=FjazsBe0_M5vhJer9hL-GrKxsuRqz73IOQ7clXFjuH0,788
56
+ unicex/kucoin/adapter.py,sha256=kO-aR0zGv6KiUrRmBxLYU4QoIIdyli4izJdV--KastQ,3954
57
+ unicex/kucoin/client.py,sha256=A-dvd9nN4t26S-7zGx5u-gKpECUXNLNGtgkmX0hNxYg,1654
58
+ unicex/kucoin/exchange_info.py,sha256=N80aLQbDIiYtmjteZSW9c7Xq5QQKKa9gOhdWDfqTyzM,1703
59
59
  unicex/kucoin/uni_client.py,sha256=yCYgBv6nTYvn0Wt0guFVYZyh6OXbmQMDr4r81D-UqBY,6924
60
60
  unicex/kucoin/uni_websocket_manager.py,sha256=B9LZxp7KgitSq8k0Gk2lFcZr51mwStRWFfksz-5DL14,9329
61
61
  unicex/kucoin/user_websocket.py,sha256=Tx0yuGpf2HrPbcOHHZioYjVp6LBfagOKF-zzD3UM0Ok,129
@@ -87,15 +87,15 @@ unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py,sha256=0FOMsSO4jzMQ6446yZ
87
87
  unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py,sha256=_V0StMrDE7-bsdRPQdTC2XLGDGqJ5U_scx8ZjcyCGgk,3735
88
88
  unicex/mexc/_spot_ws_proto/__init__.py,sha256=L8Jft1713_M8CLR9drgSjLBdY_46sPT3O9zDFlxYvgc,11431
89
89
  unicex/okx/__init__.py,sha256=Ljbw3AP0YrPF5bIPJi_3JP3B_czR9xurYHI24rgWk9M,920
90
- unicex/okx/adapter.py,sha256=0sQ_7pYdUEBfXMUtNj8wJ9ECt-DJQ9ozUXi0WPAYevU,5724
90
+ unicex/okx/adapter.py,sha256=FSyLLHX7BlCp3chsloAdRAeUM5WBFkdaxWKCHTbXJYs,5346
91
91
  unicex/okx/client.py,sha256=2XL4YWPdRZYRMfLF1vSpkmwSd8Dxn8uyw5vCwDJab48,90969
92
92
  unicex/okx/exchange_info.py,sha256=gkTwYnXgswa1FGLXdKo9qLYqZA0BS9VefpALhR4_t-Q,1772
93
93
  unicex/okx/uni_client.py,sha256=E_Wod0JSGt1K6k1mAIWnOv350pELbv-nic7g1KgOuos,8694
94
94
  unicex/okx/uni_websocket_manager.py,sha256=b4f_QjA64DJmENQdIGb5IOVc7kvit7KMCdWeCmRbxGY,9326
95
95
  unicex/okx/user_websocket.py,sha256=8c9kpm-xVa729pW93OKUGLHaE9MY0uzEpjIgNIFRF80,126
96
96
  unicex/okx/websocket_manager.py,sha256=wROXTUDqKzOE-wDnCtXso_MC4SzfPuPols5aPg_Z3y4,26027
97
- unicex-0.14.1.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
98
- unicex-0.14.1.dist-info/METADATA,sha256=BUTZCNtVx_QXjkLrvmyCAgvOjLEU_MsiPuj-14-XO84,11752
99
- unicex-0.14.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
- unicex-0.14.1.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
101
- unicex-0.14.1.dist-info/RECORD,,
97
+ unicex-0.14.2.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
98
+ unicex-0.14.2.dist-info/METADATA,sha256=dcS7RTFBdPBLb-fwmJfHLVnLz2fqV8eRA5X8J-HArz4,11752
99
+ unicex-0.14.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
+ unicex-0.14.2.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
101
+ unicex-0.14.2.dist-info/RECORD,,