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 +11 -1
- unicex/kucoin/client.py +21 -5
- unicex/kucoin/exchange_info.py +27 -2
- unicex/okx/adapter.py +0 -10
- {unicex-0.14.1.dist-info → unicex-0.14.2.dist-info}/METADATA +1 -1
- {unicex-0.14.1.dist-info → unicex-0.14.2.dist-info}/RECORD +9 -9
- {unicex-0.14.1.dist-info → unicex-0.14.2.dist-info}/WHEEL +0 -0
- {unicex-0.14.1.dist-info → unicex-0.14.2.dist-info}/licenses/LICENSE +0 -0
- {unicex-0.14.1.dist-info → unicex-0.14.2.dist-info}/top_level.txt +0 -0
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
|
|
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/
|
|
22
|
+
https://www.kucoin.com/docs-new/rest/ua/get-symbol
|
|
19
23
|
"""
|
|
20
|
-
url = self._BASE_URL + "/api/ua/v1/market/
|
|
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)
|
unicex/kucoin/exchange_info.py
CHANGED
|
@@ -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
|
|
@@ -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=
|
|
57
|
-
unicex/kucoin/client.py,sha256=
|
|
58
|
-
unicex/kucoin/exchange_info.py,sha256=
|
|
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=
|
|
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.
|
|
98
|
-
unicex-0.14.
|
|
99
|
-
unicex-0.14.
|
|
100
|
-
unicex-0.14.
|
|
101
|
-
unicex-0.14.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|