crypticorn 2.16.0__py3-none-any.whl → 2.17.0rc2__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.
- crypticorn/__init__.py +2 -2
- crypticorn/auth/client/api/admin_api.py +415 -13
- crypticorn/auth/client/api/auth_api.py +2622 -113
- crypticorn/auth/client/api/service_api.py +258 -7
- crypticorn/auth/client/api/user_api.py +2485 -270
- crypticorn/auth/client/api/wallet_api.py +1518 -77
- crypticorn/auth/client/models/create_api_key_request.py +2 -1
- crypticorn/auth/client/models/get_api_keys200_response_inner.py +2 -1
- crypticorn/auth/client/rest.py +23 -4
- crypticorn/auth/main.py +8 -5
- crypticorn/client.py +227 -59
- crypticorn/common/__init__.py +1 -0
- crypticorn/common/metrics.py +18 -0
- crypticorn/common/middleware.py +46 -0
- crypticorn/common/pagination.py +137 -18
- crypticorn/common/router/admin_router.py +12 -2
- crypticorn/common/utils.py +2 -1
- crypticorn/common/warnings.py +7 -0
- crypticorn/hive/client/api/admin_api.py +1234 -51
- crypticorn/hive/client/api/data_api.py +517 -13
- crypticorn/hive/client/api/models_api.py +1657 -83
- crypticorn/hive/client/api/status_api.py +415 -13
- crypticorn/hive/client/models/api_error_identifier.py +1 -1
- crypticorn/hive/client/rest.py +23 -4
- crypticorn/hive/main.py +99 -25
- crypticorn/klines/client/api/admin_api.py +1234 -51
- crypticorn/klines/client/api/change_in_timeframe_api.py +278 -7
- crypticorn/klines/client/api/funding_rates_api.py +324 -7
- crypticorn/klines/client/api/ohlcv_data_api.py +399 -7
- crypticorn/klines/client/api/status_api.py +415 -13
- crypticorn/klines/client/api/symbols_api.py +225 -7
- crypticorn/klines/client/api/udf_api.py +1393 -120
- crypticorn/klines/client/models/api_error_identifier.py +3 -1
- crypticorn/klines/client/rest.py +23 -4
- crypticorn/klines/main.py +89 -12
- crypticorn/metrics/client/api/admin_api.py +1234 -51
- crypticorn/metrics/client/api/exchanges_api.py +1405 -140
- crypticorn/metrics/client/api/indicators_api.py +640 -13
- crypticorn/metrics/client/api/logs_api.py +305 -7
- crypticorn/metrics/client/api/marketcap_api.py +1240 -60
- crypticorn/metrics/client/api/markets_api.py +352 -7
- crypticorn/metrics/client/api/quote_currencies_api.py +237 -7
- crypticorn/metrics/client/api/status_api.py +415 -13
- crypticorn/metrics/client/api/tokens_api.py +400 -13
- crypticorn/metrics/client/configuration.py +4 -2
- crypticorn/metrics/client/rest.py +23 -4
- crypticorn/metrics/main.py +113 -19
- crypticorn/pay/client/api/admin_api.py +1720 -126
- crypticorn/pay/client/api/now_payments_api.py +1013 -42
- crypticorn/pay/client/api/payments_api.py +580 -13
- crypticorn/pay/client/api/products_api.py +915 -25
- crypticorn/pay/client/api/status_api.py +415 -13
- crypticorn/pay/client/configuration.py +2 -2
- crypticorn/pay/client/models/api_error_identifier.py +7 -7
- crypticorn/pay/client/models/scope.py +1 -0
- crypticorn/pay/client/rest.py +23 -4
- crypticorn/pay/main.py +10 -6
- crypticorn/trade/client/__init__.py +2 -1
- crypticorn/trade/client/api/__init__.py +0 -1
- crypticorn/trade/client/api/admin_api.py +1718 -123
- crypticorn/trade/client/api/api_keys_api.py +1596 -103
- crypticorn/trade/client/api/bots_api.py +1106 -47
- crypticorn/trade/client/api/exchanges_api.py +592 -19
- crypticorn/trade/client/api/notifications_api.py +1340 -112
- crypticorn/trade/client/api/orders_api.py +240 -7
- crypticorn/trade/client/api/status_api.py +415 -13
- crypticorn/trade/client/api/strategies_api.py +1170 -69
- crypticorn/trade/client/api/trading_actions_api.py +650 -19
- crypticorn/trade/client/models/__init__.py +2 -0
- crypticorn/trade/client/models/exchange.py +6 -1
- crypticorn/trade/client/models/exchange_key_balance.py +111 -0
- crypticorn/trade/client/models/futures_balance.py +27 -25
- crypticorn/trade/client/models/spot_balance.py +110 -0
- crypticorn/trade/client/models/strategy.py +5 -3
- crypticorn/trade/client/models/strategy_create.py +6 -4
- crypticorn/trade/client/models/strategy_exchange_info.py +16 -4
- crypticorn/trade/client/models/strategy_update.py +2 -2
- crypticorn/trade/client/rest.py +23 -4
- crypticorn/trade/main.py +15 -12
- {crypticorn-2.16.0.dist-info → crypticorn-2.17.0rc2.dist-info}/METADATA +65 -20
- {crypticorn-2.16.0.dist-info → crypticorn-2.17.0rc2.dist-info}/RECORD +85 -83
- crypticorn/trade/client/api/futures_trading_panel_api.py +0 -1285
- {crypticorn-2.16.0.dist-info → crypticorn-2.17.0rc2.dist-info}/WHEEL +0 -0
- {crypticorn-2.16.0.dist-info → crypticorn-2.17.0rc2.dist-info}/entry_points.txt +0 -0
- {crypticorn-2.16.0.dist-info → crypticorn-2.17.0rc2.dist-info}/licenses/LICENSE +0 -0
- {crypticorn-2.16.0.dist-info → crypticorn-2.17.0rc2.dist-info}/top_level.txt +0 -0
@@ -26,6 +26,24 @@ from crypticorn.metrics.client.api_client import ApiClient, RequestSerialized
|
|
26
26
|
from crypticorn.metrics.client.api_response import ApiResponse
|
27
27
|
from crypticorn.metrics.client.rest import RESTResponseType
|
28
28
|
|
29
|
+
# Import async_to_sync for sync methods
|
30
|
+
try:
|
31
|
+
from asgiref.sync import async_to_sync
|
32
|
+
|
33
|
+
_HAS_ASGIREF = True
|
34
|
+
except ImportError:
|
35
|
+
_HAS_ASGIREF = False
|
36
|
+
|
37
|
+
def async_to_sync(async_func):
|
38
|
+
"""Fallback decorator that raises an error if asgiref is not available."""
|
39
|
+
|
40
|
+
def wrapper(*args, **kwargs):
|
41
|
+
raise ImportError(
|
42
|
+
"asgiref is required for sync methods. Install with: pip install asgiref"
|
43
|
+
)
|
44
|
+
|
45
|
+
return wrapper
|
46
|
+
|
29
47
|
|
30
48
|
class MarketsApi:
|
31
49
|
"""NOTE: This class is auto generated by OpenAPI Generator
|
@@ -34,13 +52,201 @@ class MarketsApi:
|
|
34
52
|
Do not edit the class manually.
|
35
53
|
"""
|
36
54
|
|
37
|
-
def __init__(self, api_client=None) -> None:
|
55
|
+
def __init__(self, api_client=None, is_sync: bool = False) -> None:
|
38
56
|
if api_client is None:
|
39
57
|
api_client = ApiClient.get_default()
|
40
58
|
self.api_client = api_client
|
59
|
+
self.is_sync = is_sync
|
41
60
|
|
42
61
|
@validate_call
|
43
|
-
|
62
|
+
def get_available_markets_for_symbol(
|
63
|
+
self,
|
64
|
+
market: Annotated[
|
65
|
+
MarketType, Field(description="Market type (spot or futures)")
|
66
|
+
],
|
67
|
+
ticker: Annotated[
|
68
|
+
StrictStr,
|
69
|
+
Field(
|
70
|
+
description="Ticker to fetch markets for. Strip the quote currency from the ticker."
|
71
|
+
),
|
72
|
+
],
|
73
|
+
quote_currency: Annotated[
|
74
|
+
Optional[StrictStr],
|
75
|
+
Field(description="Quote currency for which to fetch markets"),
|
76
|
+
] = None,
|
77
|
+
status: Annotated[
|
78
|
+
Optional[TradingStatus],
|
79
|
+
Field(description="Trading pair status for which to fetch markets"),
|
80
|
+
] = None,
|
81
|
+
_request_timeout: Union[
|
82
|
+
None,
|
83
|
+
Annotated[StrictFloat, Field(gt=0)],
|
84
|
+
Tuple[
|
85
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
86
|
+
],
|
87
|
+
] = None,
|
88
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
89
|
+
_content_type: Optional[StrictStr] = None,
|
90
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
91
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
92
|
+
) -> List[Dict[str, object]]:
|
93
|
+
"""Get Markets For Symbol
|
94
|
+
|
95
|
+
This method can work in both sync and async modes based on the is_sync flag.
|
96
|
+
"""
|
97
|
+
if self.is_sync:
|
98
|
+
return self._get_available_markets_for_symbol_sync(
|
99
|
+
market=market,
|
100
|
+
ticker=ticker,
|
101
|
+
quote_currency=quote_currency,
|
102
|
+
status=status,
|
103
|
+
_request_timeout=_request_timeout,
|
104
|
+
_request_auth=_request_auth,
|
105
|
+
_content_type=_content_type,
|
106
|
+
_headers=_headers,
|
107
|
+
_host_index=_host_index,
|
108
|
+
)
|
109
|
+
|
110
|
+
else:
|
111
|
+
return self._get_available_markets_for_symbol_async(
|
112
|
+
market=market,
|
113
|
+
ticker=ticker,
|
114
|
+
quote_currency=quote_currency,
|
115
|
+
status=status,
|
116
|
+
_request_timeout=_request_timeout,
|
117
|
+
_request_auth=_request_auth,
|
118
|
+
_content_type=_content_type,
|
119
|
+
_headers=_headers,
|
120
|
+
_host_index=_host_index,
|
121
|
+
)
|
122
|
+
|
123
|
+
@validate_call
|
124
|
+
def get_available_markets_for_symbol_with_http_info(
|
125
|
+
self,
|
126
|
+
market: Annotated[
|
127
|
+
MarketType, Field(description="Market type (spot or futures)")
|
128
|
+
],
|
129
|
+
ticker: Annotated[
|
130
|
+
StrictStr,
|
131
|
+
Field(
|
132
|
+
description="Ticker to fetch markets for. Strip the quote currency from the ticker."
|
133
|
+
),
|
134
|
+
],
|
135
|
+
quote_currency: Annotated[
|
136
|
+
Optional[StrictStr],
|
137
|
+
Field(description="Quote currency for which to fetch markets"),
|
138
|
+
] = None,
|
139
|
+
status: Annotated[
|
140
|
+
Optional[TradingStatus],
|
141
|
+
Field(description="Trading pair status for which to fetch markets"),
|
142
|
+
] = None,
|
143
|
+
_request_timeout: Union[
|
144
|
+
None,
|
145
|
+
Annotated[StrictFloat, Field(gt=0)],
|
146
|
+
Tuple[
|
147
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
148
|
+
],
|
149
|
+
] = None,
|
150
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
151
|
+
_content_type: Optional[StrictStr] = None,
|
152
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
153
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
154
|
+
) -> ApiResponse[List[Dict[str, object]]]:
|
155
|
+
"""Get Markets For Symbol with HTTP info
|
156
|
+
|
157
|
+
This method can work in both sync and async modes based on the is_sync flag.
|
158
|
+
"""
|
159
|
+
if self.is_sync:
|
160
|
+
return self._get_available_markets_for_symbol_sync_with_http_info(
|
161
|
+
market=market,
|
162
|
+
ticker=ticker,
|
163
|
+
quote_currency=quote_currency,
|
164
|
+
status=status,
|
165
|
+
_request_timeout=_request_timeout,
|
166
|
+
_request_auth=_request_auth,
|
167
|
+
_content_type=_content_type,
|
168
|
+
_headers=_headers,
|
169
|
+
_host_index=_host_index,
|
170
|
+
)
|
171
|
+
|
172
|
+
else:
|
173
|
+
return self._get_available_markets_for_symbol_async_with_http_info(
|
174
|
+
market=market,
|
175
|
+
ticker=ticker,
|
176
|
+
quote_currency=quote_currency,
|
177
|
+
status=status,
|
178
|
+
_request_timeout=_request_timeout,
|
179
|
+
_request_auth=_request_auth,
|
180
|
+
_content_type=_content_type,
|
181
|
+
_headers=_headers,
|
182
|
+
_host_index=_host_index,
|
183
|
+
)
|
184
|
+
|
185
|
+
@validate_call
|
186
|
+
def get_available_markets_for_symbol_without_preload_content(
|
187
|
+
self,
|
188
|
+
market: Annotated[
|
189
|
+
MarketType, Field(description="Market type (spot or futures)")
|
190
|
+
],
|
191
|
+
ticker: Annotated[
|
192
|
+
StrictStr,
|
193
|
+
Field(
|
194
|
+
description="Ticker to fetch markets for. Strip the quote currency from the ticker."
|
195
|
+
),
|
196
|
+
],
|
197
|
+
quote_currency: Annotated[
|
198
|
+
Optional[StrictStr],
|
199
|
+
Field(description="Quote currency for which to fetch markets"),
|
200
|
+
] = None,
|
201
|
+
status: Annotated[
|
202
|
+
Optional[TradingStatus],
|
203
|
+
Field(description="Trading pair status for which to fetch markets"),
|
204
|
+
] = None,
|
205
|
+
_request_timeout: Union[
|
206
|
+
None,
|
207
|
+
Annotated[StrictFloat, Field(gt=0)],
|
208
|
+
Tuple[
|
209
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
210
|
+
],
|
211
|
+
] = None,
|
212
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
213
|
+
_content_type: Optional[StrictStr] = None,
|
214
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
215
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
216
|
+
) -> RESTResponseType:
|
217
|
+
"""Get Markets For Symbol without preloading content
|
218
|
+
|
219
|
+
This method can work in both sync and async modes based on the is_sync flag.
|
220
|
+
"""
|
221
|
+
if self.is_sync:
|
222
|
+
return self._get_available_markets_for_symbol_sync_without_preload_content(
|
223
|
+
market=market,
|
224
|
+
ticker=ticker,
|
225
|
+
quote_currency=quote_currency,
|
226
|
+
status=status,
|
227
|
+
_request_timeout=_request_timeout,
|
228
|
+
_request_auth=_request_auth,
|
229
|
+
_content_type=_content_type,
|
230
|
+
_headers=_headers,
|
231
|
+
_host_index=_host_index,
|
232
|
+
)
|
233
|
+
|
234
|
+
else:
|
235
|
+
return self._get_available_markets_for_symbol_async_without_preload_content(
|
236
|
+
market=market,
|
237
|
+
ticker=ticker,
|
238
|
+
quote_currency=quote_currency,
|
239
|
+
status=status,
|
240
|
+
_request_timeout=_request_timeout,
|
241
|
+
_request_auth=_request_auth,
|
242
|
+
_content_type=_content_type,
|
243
|
+
_headers=_headers,
|
244
|
+
_host_index=_host_index,
|
245
|
+
)
|
246
|
+
|
247
|
+
# Private async implementation methods
|
248
|
+
@validate_call
|
249
|
+
async def _get_available_markets_for_symbol_async(
|
44
250
|
self,
|
45
251
|
market: Annotated[
|
46
252
|
MarketType, Field(description="Market type (spot or futures)")
|
@@ -129,7 +335,7 @@ class MarketsApi:
|
|
129
335
|
).data
|
130
336
|
|
131
337
|
@validate_call
|
132
|
-
async def
|
338
|
+
async def _get_available_markets_for_symbol_async_with_http_info(
|
133
339
|
self,
|
134
340
|
market: Annotated[
|
135
341
|
MarketType, Field(description="Market type (spot or futures)")
|
@@ -213,12 +419,11 @@ class MarketsApi:
|
|
213
419
|
)
|
214
420
|
await response_data.read()
|
215
421
|
return self.api_client.response_deserialize(
|
216
|
-
response_data=response_data,
|
217
|
-
response_types_map=_response_types_map,
|
422
|
+
response_data=response_data, response_types_map=_response_types_map
|
218
423
|
)
|
219
424
|
|
220
425
|
@validate_call
|
221
|
-
async def
|
426
|
+
async def _get_available_markets_for_symbol_async_without_preload_content(
|
222
427
|
self,
|
223
428
|
market: Annotated[
|
224
429
|
MarketType, Field(description="Market type (spot or futures)")
|
@@ -300,7 +505,147 @@ class MarketsApi:
|
|
300
505
|
response_data = await self.api_client.call_api(
|
301
506
|
*_param, _request_timeout=_request_timeout
|
302
507
|
)
|
303
|
-
return response_data
|
508
|
+
return response_data
|
509
|
+
|
510
|
+
# Private sync implementation methods
|
511
|
+
@validate_call
|
512
|
+
def _get_available_markets_for_symbol_sync(
|
513
|
+
self,
|
514
|
+
market: Annotated[
|
515
|
+
MarketType, Field(description="Market type (spot or futures)")
|
516
|
+
],
|
517
|
+
ticker: Annotated[
|
518
|
+
StrictStr,
|
519
|
+
Field(
|
520
|
+
description="Ticker to fetch markets for. Strip the quote currency from the ticker."
|
521
|
+
),
|
522
|
+
],
|
523
|
+
quote_currency: Annotated[
|
524
|
+
Optional[StrictStr],
|
525
|
+
Field(description="Quote currency for which to fetch markets"),
|
526
|
+
] = None,
|
527
|
+
status: Annotated[
|
528
|
+
Optional[TradingStatus],
|
529
|
+
Field(description="Trading pair status for which to fetch markets"),
|
530
|
+
] = None,
|
531
|
+
_request_timeout: Union[
|
532
|
+
None,
|
533
|
+
Annotated[StrictFloat, Field(gt=0)],
|
534
|
+
Tuple[
|
535
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
536
|
+
],
|
537
|
+
] = None,
|
538
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
539
|
+
_content_type: Optional[StrictStr] = None,
|
540
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
541
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
542
|
+
) -> List[Dict[str, object]]:
|
543
|
+
"""Synchronous version of get_available_markets_for_symbol"""
|
544
|
+
return async_to_sync(self._get_available_markets_for_symbol_async)(
|
545
|
+
market=market,
|
546
|
+
ticker=ticker,
|
547
|
+
quote_currency=quote_currency,
|
548
|
+
status=status,
|
549
|
+
_request_timeout=_request_timeout,
|
550
|
+
_request_auth=_request_auth,
|
551
|
+
_content_type=_content_type,
|
552
|
+
_headers=_headers,
|
553
|
+
_host_index=_host_index,
|
554
|
+
)
|
555
|
+
|
556
|
+
@validate_call
|
557
|
+
def _get_available_markets_for_symbol_sync_with_http_info(
|
558
|
+
self,
|
559
|
+
market: Annotated[
|
560
|
+
MarketType, Field(description="Market type (spot or futures)")
|
561
|
+
],
|
562
|
+
ticker: Annotated[
|
563
|
+
StrictStr,
|
564
|
+
Field(
|
565
|
+
description="Ticker to fetch markets for. Strip the quote currency from the ticker."
|
566
|
+
),
|
567
|
+
],
|
568
|
+
quote_currency: Annotated[
|
569
|
+
Optional[StrictStr],
|
570
|
+
Field(description="Quote currency for which to fetch markets"),
|
571
|
+
] = None,
|
572
|
+
status: Annotated[
|
573
|
+
Optional[TradingStatus],
|
574
|
+
Field(description="Trading pair status for which to fetch markets"),
|
575
|
+
] = None,
|
576
|
+
_request_timeout: Union[
|
577
|
+
None,
|
578
|
+
Annotated[StrictFloat, Field(gt=0)],
|
579
|
+
Tuple[
|
580
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
581
|
+
],
|
582
|
+
] = None,
|
583
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
584
|
+
_content_type: Optional[StrictStr] = None,
|
585
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
586
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
587
|
+
) -> ApiResponse[List[Dict[str, object]]]:
|
588
|
+
"""Synchronous version of get_available_markets_for_symbol_with_http_info"""
|
589
|
+
return async_to_sync(
|
590
|
+
self._get_available_markets_for_symbol_async_with_http_info
|
591
|
+
)(
|
592
|
+
market=market,
|
593
|
+
ticker=ticker,
|
594
|
+
quote_currency=quote_currency,
|
595
|
+
status=status,
|
596
|
+
_request_timeout=_request_timeout,
|
597
|
+
_request_auth=_request_auth,
|
598
|
+
_content_type=_content_type,
|
599
|
+
_headers=_headers,
|
600
|
+
_host_index=_host_index,
|
601
|
+
)
|
602
|
+
|
603
|
+
@validate_call
|
604
|
+
def _get_available_markets_for_symbol_sync_without_preload_content(
|
605
|
+
self,
|
606
|
+
market: Annotated[
|
607
|
+
MarketType, Field(description="Market type (spot or futures)")
|
608
|
+
],
|
609
|
+
ticker: Annotated[
|
610
|
+
StrictStr,
|
611
|
+
Field(
|
612
|
+
description="Ticker to fetch markets for. Strip the quote currency from the ticker."
|
613
|
+
),
|
614
|
+
],
|
615
|
+
quote_currency: Annotated[
|
616
|
+
Optional[StrictStr],
|
617
|
+
Field(description="Quote currency for which to fetch markets"),
|
618
|
+
] = None,
|
619
|
+
status: Annotated[
|
620
|
+
Optional[TradingStatus],
|
621
|
+
Field(description="Trading pair status for which to fetch markets"),
|
622
|
+
] = None,
|
623
|
+
_request_timeout: Union[
|
624
|
+
None,
|
625
|
+
Annotated[StrictFloat, Field(gt=0)],
|
626
|
+
Tuple[
|
627
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
628
|
+
],
|
629
|
+
] = None,
|
630
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
631
|
+
_content_type: Optional[StrictStr] = None,
|
632
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
633
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
634
|
+
) -> RESTResponseType:
|
635
|
+
"""Synchronous version of get_available_markets_for_symbol_without_preload_content"""
|
636
|
+
return async_to_sync(
|
637
|
+
self._get_available_markets_for_symbol_async_without_preload_content
|
638
|
+
)(
|
639
|
+
market=market,
|
640
|
+
ticker=ticker,
|
641
|
+
quote_currency=quote_currency,
|
642
|
+
status=status,
|
643
|
+
_request_timeout=_request_timeout,
|
644
|
+
_request_auth=_request_auth,
|
645
|
+
_content_type=_content_type,
|
646
|
+
_headers=_headers,
|
647
|
+
_host_index=_host_index,
|
648
|
+
)
|
304
649
|
|
305
650
|
def _get_available_markets_for_symbol_serialize(
|
306
651
|
self,
|
@@ -25,6 +25,24 @@ from crypticorn.metrics.client.api_client import ApiClient, RequestSerialized
|
|
25
25
|
from crypticorn.metrics.client.api_response import ApiResponse
|
26
26
|
from crypticorn.metrics.client.rest import RESTResponseType
|
27
27
|
|
28
|
+
# Import async_to_sync for sync methods
|
29
|
+
try:
|
30
|
+
from asgiref.sync import async_to_sync
|
31
|
+
|
32
|
+
_HAS_ASGIREF = True
|
33
|
+
except ImportError:
|
34
|
+
_HAS_ASGIREF = False
|
35
|
+
|
36
|
+
def async_to_sync(async_func):
|
37
|
+
"""Fallback decorator that raises an error if asgiref is not available."""
|
38
|
+
|
39
|
+
def wrapper(*args, **kwargs):
|
40
|
+
raise ImportError(
|
41
|
+
"asgiref is required for sync methods. Install with: pip install asgiref"
|
42
|
+
)
|
43
|
+
|
44
|
+
return wrapper
|
45
|
+
|
28
46
|
|
29
47
|
class QuoteCurrenciesApi:
|
30
48
|
"""NOTE: This class is auto generated by OpenAPI Generator
|
@@ -33,13 +51,141 @@ class QuoteCurrenciesApi:
|
|
33
51
|
Do not edit the class manually.
|
34
52
|
"""
|
35
53
|
|
36
|
-
def __init__(self, api_client=None) -> None:
|
54
|
+
def __init__(self, api_client=None, is_sync: bool = False) -> None:
|
37
55
|
if api_client is None:
|
38
56
|
api_client = ApiClient.get_default()
|
39
57
|
self.api_client = api_client
|
58
|
+
self.is_sync = is_sync
|
40
59
|
|
41
60
|
@validate_call
|
42
|
-
|
61
|
+
def get_quote_currencies(
|
62
|
+
self,
|
63
|
+
market: Annotated[
|
64
|
+
MarketType, Field(description="Market type (spot or futures)")
|
65
|
+
],
|
66
|
+
_request_timeout: Union[
|
67
|
+
None,
|
68
|
+
Annotated[StrictFloat, Field(gt=0)],
|
69
|
+
Tuple[
|
70
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
71
|
+
],
|
72
|
+
] = None,
|
73
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
74
|
+
_content_type: Optional[StrictStr] = None,
|
75
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
76
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
77
|
+
) -> List[str]:
|
78
|
+
"""Get Quote Currencies
|
79
|
+
|
80
|
+
This method can work in both sync and async modes based on the is_sync flag.
|
81
|
+
"""
|
82
|
+
if self.is_sync:
|
83
|
+
return self._get_quote_currencies_sync(
|
84
|
+
market=market,
|
85
|
+
_request_timeout=_request_timeout,
|
86
|
+
_request_auth=_request_auth,
|
87
|
+
_content_type=_content_type,
|
88
|
+
_headers=_headers,
|
89
|
+
_host_index=_host_index,
|
90
|
+
)
|
91
|
+
|
92
|
+
else:
|
93
|
+
return self._get_quote_currencies_async(
|
94
|
+
market=market,
|
95
|
+
_request_timeout=_request_timeout,
|
96
|
+
_request_auth=_request_auth,
|
97
|
+
_content_type=_content_type,
|
98
|
+
_headers=_headers,
|
99
|
+
_host_index=_host_index,
|
100
|
+
)
|
101
|
+
|
102
|
+
@validate_call
|
103
|
+
def get_quote_currencies_with_http_info(
|
104
|
+
self,
|
105
|
+
market: Annotated[
|
106
|
+
MarketType, Field(description="Market type (spot or futures)")
|
107
|
+
],
|
108
|
+
_request_timeout: Union[
|
109
|
+
None,
|
110
|
+
Annotated[StrictFloat, Field(gt=0)],
|
111
|
+
Tuple[
|
112
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
113
|
+
],
|
114
|
+
] = None,
|
115
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
116
|
+
_content_type: Optional[StrictStr] = None,
|
117
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
118
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
119
|
+
) -> ApiResponse[List[str]]:
|
120
|
+
"""Get Quote Currencies with HTTP info
|
121
|
+
|
122
|
+
This method can work in both sync and async modes based on the is_sync flag.
|
123
|
+
"""
|
124
|
+
if self.is_sync:
|
125
|
+
return self._get_quote_currencies_sync_with_http_info(
|
126
|
+
market=market,
|
127
|
+
_request_timeout=_request_timeout,
|
128
|
+
_request_auth=_request_auth,
|
129
|
+
_content_type=_content_type,
|
130
|
+
_headers=_headers,
|
131
|
+
_host_index=_host_index,
|
132
|
+
)
|
133
|
+
|
134
|
+
else:
|
135
|
+
return self._get_quote_currencies_async_with_http_info(
|
136
|
+
market=market,
|
137
|
+
_request_timeout=_request_timeout,
|
138
|
+
_request_auth=_request_auth,
|
139
|
+
_content_type=_content_type,
|
140
|
+
_headers=_headers,
|
141
|
+
_host_index=_host_index,
|
142
|
+
)
|
143
|
+
|
144
|
+
@validate_call
|
145
|
+
def get_quote_currencies_without_preload_content(
|
146
|
+
self,
|
147
|
+
market: Annotated[
|
148
|
+
MarketType, Field(description="Market type (spot or futures)")
|
149
|
+
],
|
150
|
+
_request_timeout: Union[
|
151
|
+
None,
|
152
|
+
Annotated[StrictFloat, Field(gt=0)],
|
153
|
+
Tuple[
|
154
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
155
|
+
],
|
156
|
+
] = None,
|
157
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
158
|
+
_content_type: Optional[StrictStr] = None,
|
159
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
160
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
161
|
+
) -> RESTResponseType:
|
162
|
+
"""Get Quote Currencies without preloading content
|
163
|
+
|
164
|
+
This method can work in both sync and async modes based on the is_sync flag.
|
165
|
+
"""
|
166
|
+
if self.is_sync:
|
167
|
+
return self._get_quote_currencies_sync_without_preload_content(
|
168
|
+
market=market,
|
169
|
+
_request_timeout=_request_timeout,
|
170
|
+
_request_auth=_request_auth,
|
171
|
+
_content_type=_content_type,
|
172
|
+
_headers=_headers,
|
173
|
+
_host_index=_host_index,
|
174
|
+
)
|
175
|
+
|
176
|
+
else:
|
177
|
+
return self._get_quote_currencies_async_without_preload_content(
|
178
|
+
market=market,
|
179
|
+
_request_timeout=_request_timeout,
|
180
|
+
_request_auth=_request_auth,
|
181
|
+
_content_type=_content_type,
|
182
|
+
_headers=_headers,
|
183
|
+
_host_index=_host_index,
|
184
|
+
)
|
185
|
+
|
186
|
+
# Private async implementation methods
|
187
|
+
@validate_call
|
188
|
+
async def _get_quote_currencies_async(
|
43
189
|
self,
|
44
190
|
market: Annotated[
|
45
191
|
MarketType, Field(description="Market type (spot or futures)")
|
@@ -105,7 +251,7 @@ class QuoteCurrenciesApi:
|
|
105
251
|
).data
|
106
252
|
|
107
253
|
@validate_call
|
108
|
-
async def
|
254
|
+
async def _get_quote_currencies_async_with_http_info(
|
109
255
|
self,
|
110
256
|
market: Annotated[
|
111
257
|
MarketType, Field(description="Market type (spot or futures)")
|
@@ -166,12 +312,11 @@ class QuoteCurrenciesApi:
|
|
166
312
|
)
|
167
313
|
await response_data.read()
|
168
314
|
return self.api_client.response_deserialize(
|
169
|
-
response_data=response_data,
|
170
|
-
response_types_map=_response_types_map,
|
315
|
+
response_data=response_data, response_types_map=_response_types_map
|
171
316
|
)
|
172
317
|
|
173
318
|
@validate_call
|
174
|
-
async def
|
319
|
+
async def _get_quote_currencies_async_without_preload_content(
|
175
320
|
self,
|
176
321
|
market: Annotated[
|
177
322
|
MarketType, Field(description="Market type (spot or futures)")
|
@@ -230,7 +375,92 @@ class QuoteCurrenciesApi:
|
|
230
375
|
response_data = await self.api_client.call_api(
|
231
376
|
*_param, _request_timeout=_request_timeout
|
232
377
|
)
|
233
|
-
return response_data
|
378
|
+
return response_data
|
379
|
+
|
380
|
+
# Private sync implementation methods
|
381
|
+
@validate_call
|
382
|
+
def _get_quote_currencies_sync(
|
383
|
+
self,
|
384
|
+
market: Annotated[
|
385
|
+
MarketType, Field(description="Market type (spot or futures)")
|
386
|
+
],
|
387
|
+
_request_timeout: Union[
|
388
|
+
None,
|
389
|
+
Annotated[StrictFloat, Field(gt=0)],
|
390
|
+
Tuple[
|
391
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
392
|
+
],
|
393
|
+
] = None,
|
394
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
395
|
+
_content_type: Optional[StrictStr] = None,
|
396
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
397
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
398
|
+
) -> List[str]:
|
399
|
+
"""Synchronous version of get_quote_currencies"""
|
400
|
+
return async_to_sync(self._get_quote_currencies_async)(
|
401
|
+
market=market,
|
402
|
+
_request_timeout=_request_timeout,
|
403
|
+
_request_auth=_request_auth,
|
404
|
+
_content_type=_content_type,
|
405
|
+
_headers=_headers,
|
406
|
+
_host_index=_host_index,
|
407
|
+
)
|
408
|
+
|
409
|
+
@validate_call
|
410
|
+
def _get_quote_currencies_sync_with_http_info(
|
411
|
+
self,
|
412
|
+
market: Annotated[
|
413
|
+
MarketType, Field(description="Market type (spot or futures)")
|
414
|
+
],
|
415
|
+
_request_timeout: Union[
|
416
|
+
None,
|
417
|
+
Annotated[StrictFloat, Field(gt=0)],
|
418
|
+
Tuple[
|
419
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
420
|
+
],
|
421
|
+
] = None,
|
422
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
423
|
+
_content_type: Optional[StrictStr] = None,
|
424
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
425
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
426
|
+
) -> ApiResponse[List[str]]:
|
427
|
+
"""Synchronous version of get_quote_currencies_with_http_info"""
|
428
|
+
return async_to_sync(self._get_quote_currencies_async_with_http_info)(
|
429
|
+
market=market,
|
430
|
+
_request_timeout=_request_timeout,
|
431
|
+
_request_auth=_request_auth,
|
432
|
+
_content_type=_content_type,
|
433
|
+
_headers=_headers,
|
434
|
+
_host_index=_host_index,
|
435
|
+
)
|
436
|
+
|
437
|
+
@validate_call
|
438
|
+
def _get_quote_currencies_sync_without_preload_content(
|
439
|
+
self,
|
440
|
+
market: Annotated[
|
441
|
+
MarketType, Field(description="Market type (spot or futures)")
|
442
|
+
],
|
443
|
+
_request_timeout: Union[
|
444
|
+
None,
|
445
|
+
Annotated[StrictFloat, Field(gt=0)],
|
446
|
+
Tuple[
|
447
|
+
Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
|
448
|
+
],
|
449
|
+
] = None,
|
450
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
451
|
+
_content_type: Optional[StrictStr] = None,
|
452
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
453
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
454
|
+
) -> RESTResponseType:
|
455
|
+
"""Synchronous version of get_quote_currencies_without_preload_content"""
|
456
|
+
return async_to_sync(self._get_quote_currencies_async_without_preload_content)(
|
457
|
+
market=market,
|
458
|
+
_request_timeout=_request_timeout,
|
459
|
+
_request_auth=_request_auth,
|
460
|
+
_content_type=_content_type,
|
461
|
+
_headers=_headers,
|
462
|
+
_host_index=_host_index,
|
463
|
+
)
|
234
464
|
|
235
465
|
def _get_quote_currencies_serialize(
|
236
466
|
self,
|