unicex 0.15.1__py3-none-any.whl → 0.15.4__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.
@@ -8,6 +8,7 @@ import orjson
8
8
  from google.protobuf.json_format import MessageToDict
9
9
 
10
10
  from unicex._base import Websocket
11
+ from unicex.utils import validate_single_symbol_args
11
12
 
12
13
  from ._spot_ws_proto import PushDataV3ApiWrapper
13
14
  from .client import Client
@@ -55,10 +56,7 @@ class WebsocketManager:
55
56
  **template_kwargs: Any,
56
57
  ) -> list[str]:
57
58
  """Сформировать сообщение для подписки на вебсокет."""
58
- if symbol and symbols:
59
- raise ValueError("Parameters symbol and symbols cannot be used together")
60
- if not (symbol or symbols):
61
- raise ValueError("Either symbol or symbols must be provided")
59
+ validate_single_symbol_args(symbol, symbols)
62
60
 
63
61
  if symbol:
64
62
  params = [channel_template.format(symbol=symbol, **template_kwargs)]
unicex/okx/adapter.py CHANGED
@@ -135,6 +135,7 @@ class Adapter:
135
135
  item["instId"]: OpenInterestItem(
136
136
  t=int(item["ts"]),
137
137
  v=float(item["oiCcy"]),
138
+ u="coins",
138
139
  )
139
140
  for item in raw_data["data"]
140
141
  }
unicex/types.py CHANGED
@@ -118,7 +118,10 @@ class OpenInterestItem(TypedDict):
118
118
  """Время. В миллисекундах."""
119
119
 
120
120
  v: float
121
- """Открытый интерес. В монетах."""
121
+ """Открытый интерес."""
122
+
123
+ u: Literal["coins", "usd"]
124
+ """Единица измерения открытого интереса."""
122
125
 
123
126
 
124
127
  type OpenInterestDict = dict[str, OpenInterestItem]
unicex/utils.py CHANGED
@@ -10,6 +10,7 @@ __all__ = [
10
10
  "catch_adapter_errors",
11
11
  "decorate_all_methods",
12
12
  "symbol_to_exchange_format",
13
+ "validate_single_symbol_args",
13
14
  ]
14
15
 
15
16
  import base64
@@ -17,7 +18,7 @@ import hashlib
17
18
  import hmac
18
19
  import json
19
20
  import time
20
- from collections.abc import Callable, Iterable
21
+ from collections.abc import Callable, Iterable, Sequence
21
22
  from functools import wraps
22
23
  from typing import Any, Literal
23
24
  from urllib.parse import urlencode
@@ -232,9 +233,29 @@ def symbol_to_exchange_format(
232
233
  return symbol.removesuffix("USDT") # Вот тут мб и не так, там вроде что-то к USDC
233
234
  elif exchange == Exchange.KUCOIN:
234
235
  if market_type == MarketType.FUTURES:
236
+ if symbol_upper == "BTCUSDT":
237
+ return "XBTUSDTM"
235
238
  return symbol_upper + "M"
236
239
  else:
237
240
  return symbol_upper.replace("USDT", "-USDT")
238
241
  elif exchange == Exchange.BINGX:
239
242
  return symbol_upper.replace("USDT", "-USDT")
240
243
  return symbol_upper
244
+
245
+
246
+ def validate_single_symbol_args(
247
+ symbol: str | None = None, symbols: Sequence[str] | None = None
248
+ ) -> None:
249
+ """Проверяет, что передан ровно один из аргументов symbol/symbols.
250
+
251
+ Параметры:
252
+ symbol (`str | None`, опционально): Одиночный торговый символ.
253
+ symbols (`Sequence[str] | None`, опционально): Список торговых символов.
254
+
255
+ Возвращает:
256
+ `None`: Ничего не возвращает, выбрасывает ValueError при нарушении условий.
257
+ """
258
+ if symbol and symbols:
259
+ raise ValueError("Parameters symbol and symbols cannot be used together")
260
+ if not (symbol or symbols):
261
+ raise ValueError("Either symbol or symbols must be provided")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unicex
3
- Version: 0.15.1
3
+ Version: 0.15.4
4
4
  Summary: Unified Crypto Exchange API
5
5
  Author-email: LoveBloodAndDiamonds <ayazshakirzyanov27@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -1,19 +1,19 @@
1
1
  unicex/__init__.py,sha256=NRfg04EGWTx-QTH0MGEkhbT1-f5XZRvzUEJQXESXz9k,6852
2
2
  unicex/enums.py,sha256=5iJo1uokNlS9FQQtomK0LiEcXuHqF9cBEg2aPAX3QDk,10296
3
3
  unicex/exceptions.py,sha256=r-xZzX78VuxVnI5pe99AM8FIiGcdIUDcF5CaTkQ4NE0,2213
4
- unicex/extra.py,sha256=WaigLQM5eFhntaAUQZ9kHn7UYox6J7abO314PiJy-N4,13844
4
+ unicex/extra.py,sha256=YJKl2X-T1BtaSR0t-CpvxaGE0emNpgts807lmD_3ejA,13686
5
5
  unicex/mapper.py,sha256=b4a99_VVpEBGzctUJxvxLvu8urSrIQEziCt9cKlfg6w,5331
6
- unicex/types.py,sha256=-ajW_vV-3Pt04PEOiTYPvJR4QtV0gYnsjD4_9bxd1xM,4980
7
- unicex/utils.py,sha256=SWAmU-cn1vaT9SZHZyUgN3STerSHzwZZPFEpXNTohuM,9001
6
+ unicex/types.py,sha256=u2OtyfiXMpmafHNOXBCEC1MI3jzfG9Km_Gdr3ig80vM,5074
7
+ unicex/utils.py,sha256=1iK-ifZ-hUaU4Z-YCLoZsjAZREfJO7amYsjzG70JEk8,9963
8
8
  unicex/_abc/__init__.py,sha256=fxZjNFJFeFwWTXz8iSDe7eCWwE6xfFwFwAuG6l-TI8A,289
9
- unicex/_abc/exchange_info.py,sha256=NHBQAjknIRebyjl3musrvneN5u9vKYXjAca5PmTvJTw,9545
10
- unicex/_abc/uni_client.py,sha256=Ccp_zKFAzu9eUO7G-6WJnOjN61id0iSeWn6xqxMyHQ8,14992
11
- unicex/_abc/uni_websocket_manager.py,sha256=yYKypPkIe3rKfWBuTsS8rkwIPljpd1588CYDkeTOYqE,9905
9
+ unicex/_abc/exchange_info.py,sha256=TP_theOj1JS3Dcx5hqGT1yma1Jed776N4okOKXB7ePw,9537
10
+ unicex/_abc/uni_client.py,sha256=-kFVA2W2Nm50ZbTzxzrRqbh_To3vSrPNE9IxdfxCCVI,14946
11
+ unicex/_abc/uni_websocket_manager.py,sha256=ojAsQFViX6UjREQOg6aSvvw9pHLFhN4T-gorplODlFw,9882
12
12
  unicex/_base/__init__.py,sha256=0TmevATGnRB3qow6tkCR8dQKNZCWKeib6YQjNJ4a1b0,236
13
- unicex/_base/client.py,sha256=asIIQLZlRwwmUDvxveSv7aCvth54iiSRJdz19bxGorI,8904
13
+ unicex/_base/client.py,sha256=GuWfNNO6jVLAN-YUNKLmd-W5AfRelJIgKUe7vIQ12Qk,9318
14
14
  unicex/_base/websocket.py,sha256=J_okxWq1CiDqU64_GlcwE7Vgq8LZKsSRYpCoXVazJGk,13279
15
15
  unicex/binance/__init__.py,sha256=sDk4ZjakRdpFMaMSpOCfqjf6ZPfAS9tlrt4WlDHtDkw,932
16
- unicex/binance/adapter.py,sha256=UKp2DThQ1l7qllkJmiyk29LgVhqc6p6g1kmY3ISeOlM,8186
16
+ unicex/binance/adapter.py,sha256=BrrMM-crRC1wC6FqPVppXuL-Elpi0aco2dJ4foQrUMU,8244
17
17
  unicex/binance/client.py,sha256=LXHZJpX7HpaUTlQcjuGEjm3qin4mczemJnCay1LncZo,62444
18
18
  unicex/binance/exchange_info.py,sha256=LNDkgBC5HB3JxtIBi39puqDg6LIVWqIWjT-6akDxtMs,2437
19
19
  unicex/binance/uni_client.py,sha256=W4yxiU0kkJKPJjimhv4KAWreuEBwt7GgrWXefcw5BEA,8365
@@ -21,31 +21,31 @@ unicex/binance/uni_websocket_manager.py,sha256=KnSz3o0iKx-o4ktkM7DTJZ_9xHTXFzwWn
21
21
  unicex/binance/user_websocket.py,sha256=jVTId_fSAF0VKKD2matPlE1fBpYT8HQ6WqHxGxcVdKw,7887
22
22
  unicex/binance/websocket_manager.py,sha256=Idrq0Qzi14QgpIG5d77S-r1h_BvRXphcxY2BT2IOQXA,45511
23
23
  unicex/bingx/__init__.py,sha256=JOezgBV2uOIGA-38nT_m7eMRI56_H_J1qK-j-uo7Cso,926
24
- unicex/bingx/adapter.py,sha256=VjTAhbw8xXdeyxIFy5tQJ07VA_DqUaO8OZx38z6VEts,11928
24
+ unicex/bingx/adapter.py,sha256=1QZSfrpgMlTu-ZuLWtO61caqC6ygRTViI5Plt25Ybi4,11937
25
25
  unicex/bingx/client.py,sha256=VPPIDKH86i1KR-6Xr8RXO7nSt7KhKNnp7Sz4spnZm-E,16899
26
26
  unicex/bingx/exchange_info.py,sha256=dfUl2V7ec82eEDE_u6AuMB9dQ8iAWh03HcaUPaOo_mo,786
27
27
  unicex/bingx/uni_client.py,sha256=NKJVq2ce4UbK1jnKTLOIX2X2a5LzhPh_oG6_JrH4P6o,8196
28
28
  unicex/bingx/uni_websocket_manager.py,sha256=cFVR5uPdpooF6gRsAX_6cGRnud2UjXNUa82A0WW2Z08,9962
29
29
  unicex/bingx/user_websocket.py,sha256=UgWt2hMaNqEUibf-1MfCIkJijx7Vb_HN8DiXaclMCog,128
30
- unicex/bingx/websocket_manager.py,sha256=E1ga5NGDEBYdTFiqWP3C7O2XSCWO0pbdJV8heUplBcM,4976
30
+ unicex/bingx/websocket_manager.py,sha256=Is9aurewMICA0n90YTGK3ET4J269bvklJFwDJRzQKNg,4855
31
31
  unicex/bitget/__init__.py,sha256=8govSOEyWjA62js-ZTQIiSYWSmcEUFSC9hVTpS8eosk,929
32
- unicex/bitget/adapter.py,sha256=frQBOKFsIB8mXc_Ime2-Iby_nRQlSpzXjshC5AxoDTA,7741
32
+ unicex/bitget/adapter.py,sha256=t1Jsn9LYeMx_LUJjPmrAuuhTB1lcpyBViSMzjUIfX_k,7768
33
33
  unicex/bitget/client.py,sha256=0NFOixkMb0AcC5e-LytUd4Y1jxCO6Lv6-I4XlOGNtxQ,90618
34
34
  unicex/bitget/exchange_info.py,sha256=_UMvAqP0zcpmv9dkovkFxrXLlol6q8_v7-0sy6FSfrE,1959
35
35
  unicex/bitget/uni_client.py,sha256=MrXAmthTDTEQZ1ZY3LuqkCKL1bw_mKHMdiV4XiRFO-M,8641
36
36
  unicex/bitget/uni_websocket_manager.py,sha256=ybf-_HPU-aQy7M27rfKDPSdxjI5ZzkfKCzzim-WA5l8,10038
37
37
  unicex/bitget/user_websocket.py,sha256=tlkv7Rmsw_FSfCJnEMOK_9jRsXRk2Ah_slqG8C-uhuo,129
38
- unicex/bitget/websocket_manager.py,sha256=2OhH2gKy2gN03oYeCFvf3_l6RA29dDOvpajGhbXI9Zw,9886
38
+ unicex/bitget/websocket_manager.py,sha256=Tra_E_z1QQ_snFYwqa49FmU-uWISYnbyJK5e7zqb48o,9765
39
39
  unicex/bybit/__init__.py,sha256=SrMBh6K5zUt4JheWUpNUYNb1NCDr2ujTFv4IDguaGZI,926
40
- unicex/bybit/adapter.py,sha256=U6QP2eGefZqfXq7H4P1G9M23HieAjmylb5FnrHISn5s,8147
40
+ unicex/bybit/adapter.py,sha256=yxdcn9wLcwQClnEL2kTHoPPkGiEDBNgeQ3J5qFHqcng,8174
41
41
  unicex/bybit/client.py,sha256=TB69fwMgvmKmkTFcO9Wf8S_Fe4JJGOM_208AlL4Dh8A,61673
42
42
  unicex/bybit/exchange_info.py,sha256=S5IrN5c-jW0QbuO4LGH5rluO6qo7ib-wL-8LJWNOZgI,2422
43
43
  unicex/bybit/uni_client.py,sha256=0wmIRRgofuJXWvZMB1gHwuIEfoWuPhLJXthmK1f9w40,8382
44
44
  unicex/bybit/uni_websocket_manager.py,sha256=HhgFcGo2yQLT5knU3cFaKN85jJP0Z9EIwZ-zFlMQhDo,10621
45
45
  unicex/bybit/user_websocket.py,sha256=IGGEnwyWs5jOppgK_R7SisBDvsiF1_piTswBrdQOgDg,128
46
- unicex/bybit/websocket_manager.py,sha256=ePHvngoqoVPr6p-BayoEGhCuRK-cJ69CAPzF94qTalQ,15404
46
+ unicex/bybit/websocket_manager.py,sha256=y8YiQEPtVg3Xj7seuNSbQMt5FrM-snWx9KlNioKeNVo,14413
47
47
  unicex/gate/__init__.py,sha256=dsKvhQhDcw4_w0S4c9IjKkCoOg4DCUtSecEUOlfstug,929
48
- unicex/gate/adapter.py,sha256=Oj9_wt-6EkRIlxjwGv2knuH5t4BwHyo1M58abR_1Oak,6929
48
+ unicex/gate/adapter.py,sha256=wQcvwujl0aVwhJVLMjJE_yMWz19S98rVgT6oBzFBr7M,6956
49
49
  unicex/gate/client.py,sha256=Mu8qropad8DTSDuG6mxyn6ZW2hwQK47PZnfb5yOEt2M,53828
50
50
  unicex/gate/exchange_info.py,sha256=ANzfe4mqxtLnj2TBJJxoc31KUosvxdApp1_xYrRNQDs,2300
51
51
  unicex/gate/uni_client.py,sha256=EVhQ4KF7F6y67b2oARcYzSrSnHTFsUjoXK1vLntK6u0,9649
@@ -53,7 +53,7 @@ unicex/gate/uni_websocket_manager.py,sha256=_baRRpC0zUgAqpn6PygULhGkO1mhlepyIo0k
53
53
  unicex/gate/user_websocket.py,sha256=4qZX9N2RjlJ-e25Eszz12OeCM17j5DdXVimBVaLj53w,129
54
54
  unicex/gate/websocket_manager.py,sha256=phtHbvAGQD3mtewCUxBuuD1Nj0FXN6oZrd7tnmT7c2c,25832
55
55
  unicex/hyperliquid/__init__.py,sha256=qGTAkwfXLvknvHET_iA7Qml3jkxxxA0moU_98nGTcVU,944
56
- unicex/hyperliquid/adapter.py,sha256=0aULPGDhppjbRvShbR49GNt6qmw4o_CmrFi_xGVRLHg,10612
56
+ unicex/hyperliquid/adapter.py,sha256=0-bdWnYG1fvHvNc3xyqI4Hg8YKrKLFii2Jk2ikOnI4w,10639
57
57
  unicex/hyperliquid/client.py,sha256=Arpu58t4y7CIHIukCu5Y13cKpvFdgKPEDeK80C8FLMo,84320
58
58
  unicex/hyperliquid/exchange_info.py,sha256=D1h1fvH9DycRq-xDTZ_-Y1NC2JCp165IyWMXs39VjFI,4936
59
59
  unicex/hyperliquid/uni_client.py,sha256=lNR0r4nQduiH9uPZ1uw2mNg94ULfsTM7OF95HpNjC7M,15496
@@ -61,21 +61,21 @@ unicex/hyperliquid/uni_websocket_manager.py,sha256=cGpIu3OMcCc07ATOt6-Fu10f4sc_8
61
61
  unicex/hyperliquid/user_websocket.py,sha256=BKD9ap2bx5DwpkkwwecfOTVedrZBR9eMAITgCBgg02w,134
62
62
  unicex/hyperliquid/websocket_manager.py,sha256=mlsQYykFHfQr-k6AZ3b6JfK7DnnhGtt4MRemZg4O9X4,17991
63
63
  unicex/kucoin/__init__.py,sha256=7RSMUDiqjmj8T1cvotlRu8LKH-Ok9UlajSrlXyq1mnc,929
64
- unicex/kucoin/adapter.py,sha256=pswk93o6KuVt-j9-P9i5URqdhegQLR7h1Rh-KnZqXU0,7210
65
- unicex/kucoin/client.py,sha256=16WzbNZ9ZmepZfz7OHwbV5NkBnphIjjAvlAXZZXd71c,3789
64
+ unicex/kucoin/adapter.py,sha256=SfgIC05YwTjvnagGtaSXqq-NUzCEMqulNU9YDMnUYjA,6948
65
+ unicex/kucoin/client.py,sha256=odYws8_qWfKyD9Axshoplf1B1M-FbHTkZVCeaXIAipI,4209
66
66
  unicex/kucoin/exchange_info.py,sha256=DNraBMxgMiZVSZwDmgg7v7D11_cBnqMsO95u9ITFxFk,1933
67
- unicex/kucoin/uni_client.py,sha256=KBEAs-5B8mU4QmaCGKy87i2GimJklkvKaAH3_F-JEOg,9916
67
+ unicex/kucoin/uni_client.py,sha256=6l62zwudGBkJ2sfiDZ1HAlk1Dq_NwW4LiOKfKNUzpIo,9385
68
68
  unicex/kucoin/uni_websocket_manager.py,sha256=rvrhQkvktZhbfb505KmkiBtf7Y4drClgtq5ysaiXoYk,9574
69
69
  unicex/kucoin/user_websocket.py,sha256=Tx0yuGpf2HrPbcOHHZioYjVp6LBfagOKF-zzD3UM0Ok,129
70
70
  unicex/kucoin/websocket_manager.py,sha256=GNNpzxONgTuTByrsGk1MNMlj5-zx5vs_WBTgssYSYDQ,270
71
71
  unicex/mexc/__init__.py,sha256=lltANqM_2P-fmF5j8o5-pjmORPuK6C5sVjcQhuUU_R0,923
72
- unicex/mexc/adapter.py,sha256=6Ioy6IvXHDRKVBTXnofUYWubVvGx5lUCOxKA8R_ynxY,9862
72
+ unicex/mexc/adapter.py,sha256=WhjOsdBssBkWQhQjbpMWIeAqaKXvsq6rDRQD7A34yws,9889
73
73
  unicex/mexc/client.py,sha256=FBUSs4Hu2DExVKPKJG9OawbqidACPFJ1U_1md05E3Mc,31004
74
74
  unicex/mexc/exchange_info.py,sha256=z2bQsVU0ciXV2_DFkueZHo1X35KIK2alD-7ZZjNg5Kc,1763
75
75
  unicex/mexc/uni_client.py,sha256=_nYIl46-yvyUVKZxkSLCHRxgTnM75TmZqaxCsUp8woI,9482
76
76
  unicex/mexc/uni_websocket_manager.py,sha256=zN9U7geR1jO5VLWsjsTdITrlhyCnan5hiKO2p0gBhBQ,9572
77
77
  unicex/mexc/user_websocket.py,sha256=l77-e6i0B2btd7a5IcCytbgswnV171NqOhunTcbaq48,127
78
- unicex/mexc/websocket_manager.py,sha256=Ok50-h9aQsdlWAX_FbCe0pvrvb0m_pUCfp__noge8hI,21871
78
+ unicex/mexc/websocket_manager.py,sha256=Z12jn6BEk1F1qvtuQ1xvTAlauK1sjo9fGgtcX9AoyCY,21750
79
79
  unicex/mexc/_spot_ws_proto/PrivateAccountV3Api_pb2.py,sha256=3bP1pGjeO-Norp7DhhdrQ4FcQTEKkCiL2mLagyoJHp8,1879
80
80
  unicex/mexc/_spot_ws_proto/PrivateDealsV3Api_pb2.py,sha256=mamFaZHymW5HhoTO8_mZz9y8kQcIsguCpaLf6xpC4Cc,1991
81
81
  unicex/mexc/_spot_ws_proto/PrivateOrdersV3Api_pb2.py,sha256=HsQUfInnjlsn8SJkobN-5FK1PS_0NsIvyuT1ABtbdTY,2982
@@ -93,17 +93,17 @@ unicex/mexc/_spot_ws_proto/PublicMiniTickerV3Api_pb2.py,sha256=-58JJVYtPJxwMdmHW
93
93
  unicex/mexc/_spot_ws_proto/PublicMiniTickersV3Api_pb2.py,sha256=jSN0IgXGJ2AS3Otv2GAdu0a0zUVW1gvZ4_PRCg9BlWY,1657
94
94
  unicex/mexc/_spot_ws_proto/PublicSpotKlineV3Api_pb2.py,sha256=0FOMsSO4jzMQ6446yZRF69KHCj9Kd4N0J8UPN9CYwnI,1913
95
95
  unicex/mexc/_spot_ws_proto/PushDataV3ApiWrapper_pb2.py,sha256=_V0StMrDE7-bsdRPQdTC2XLGDGqJ5U_scx8ZjcyCGgk,3735
96
- unicex/mexc/_spot_ws_proto/__init__.py,sha256=GaTX5Uys7uhFYp--_YpVOmBO5YuEyHdv1i0i0qwUvYg,11096
96
+ unicex/mexc/_spot_ws_proto/__init__.py,sha256=L8Jft1713_M8CLR9drgSjLBdY_46sPT3O9zDFlxYvgc,11431
97
97
  unicex/okx/__init__.py,sha256=Ljbw3AP0YrPF5bIPJi_3JP3B_czR9xurYHI24rgWk9M,920
98
- unicex/okx/adapter.py,sha256=FSyLLHX7BlCp3chsloAdRAeUM5WBFkdaxWKCHTbXJYs,5346
98
+ unicex/okx/adapter.py,sha256=B04_YmRr5R1FWSAbjWE51rd5zG_A88bmbXWrVez2HK8,5373
99
99
  unicex/okx/client.py,sha256=N7ma49ToMGjYiTvuoV52-NaG-vLx3s087KF67dQCRBs,91079
100
100
  unicex/okx/exchange_info.py,sha256=gkTwYnXgswa1FGLXdKo9qLYqZA0BS9VefpALhR4_t-Q,1772
101
101
  unicex/okx/uni_client.py,sha256=E_Wod0JSGt1K6k1mAIWnOv350pELbv-nic7g1KgOuos,8694
102
102
  unicex/okx/uni_websocket_manager.py,sha256=CR877hj4pKwJbYlmKJvETl1Zlezpd81ZdzHkAMCYIwA,9571
103
103
  unicex/okx/user_websocket.py,sha256=8c9kpm-xVa729pW93OKUGLHaE9MY0uzEpjIgNIFRF80,126
104
104
  unicex/okx/websocket_manager.py,sha256=rougqBUOV8XeJszRDtmSFSyaaphmHr1kKQk926K080w,26042
105
- unicex-0.15.1.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
106
- unicex-0.15.1.dist-info/METADATA,sha256=NU78tTe5eZ2lf5PH1f1F_9O6Pibn98KXsQ4Kg3kkCO8,11964
107
- unicex-0.15.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
108
- unicex-0.15.1.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
109
- unicex-0.15.1.dist-info/RECORD,,
105
+ unicex-0.15.4.dist-info/licenses/LICENSE,sha256=lNNK4Vqak9cXm6qVJLhbqS7iR_BMj6k7fd7XQ6l1k54,1507
106
+ unicex-0.15.4.dist-info/METADATA,sha256=qa34lhsjmWfZj1hkfjOU5iRiT6zgSWuWA6nxHsVn1M8,11964
107
+ unicex-0.15.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
108
+ unicex-0.15.4.dist-info/top_level.txt,sha256=_7rar-0OENIg4KRy6cgjWiebFYAJhjKEcMggAocGWG4,7
109
+ unicex-0.15.4.dist-info/RECORD,,