crypticorn 2.17.0rc1__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.
Files changed (86) hide show
  1. crypticorn/__init__.py +2 -2
  2. crypticorn/auth/client/api/admin_api.py +415 -13
  3. crypticorn/auth/client/api/auth_api.py +2622 -113
  4. crypticorn/auth/client/api/service_api.py +258 -7
  5. crypticorn/auth/client/api/user_api.py +2485 -270
  6. crypticorn/auth/client/api/wallet_api.py +1518 -77
  7. crypticorn/auth/client/models/create_api_key_request.py +2 -1
  8. crypticorn/auth/client/models/get_api_keys200_response_inner.py +2 -1
  9. crypticorn/auth/client/rest.py +23 -4
  10. crypticorn/auth/main.py +8 -5
  11. crypticorn/client.py +227 -59
  12. crypticorn/common/__init__.py +0 -1
  13. crypticorn/common/metrics.py +4 -6
  14. crypticorn/common/middleware.py +10 -5
  15. crypticorn/common/pagination.py +137 -18
  16. crypticorn/common/router/admin_router.py +1 -1
  17. crypticorn/common/utils.py +2 -1
  18. crypticorn/common/warnings.py +1 -0
  19. crypticorn/hive/client/api/admin_api.py +1234 -51
  20. crypticorn/hive/client/api/data_api.py +517 -13
  21. crypticorn/hive/client/api/models_api.py +1657 -83
  22. crypticorn/hive/client/api/status_api.py +415 -13
  23. crypticorn/hive/client/models/api_error_identifier.py +1 -1
  24. crypticorn/hive/client/rest.py +23 -4
  25. crypticorn/hive/main.py +99 -25
  26. crypticorn/klines/client/api/admin_api.py +1234 -51
  27. crypticorn/klines/client/api/change_in_timeframe_api.py +278 -7
  28. crypticorn/klines/client/api/funding_rates_api.py +324 -7
  29. crypticorn/klines/client/api/ohlcv_data_api.py +399 -7
  30. crypticorn/klines/client/api/status_api.py +415 -13
  31. crypticorn/klines/client/api/symbols_api.py +225 -7
  32. crypticorn/klines/client/api/udf_api.py +1393 -120
  33. crypticorn/klines/client/models/api_error_identifier.py +3 -1
  34. crypticorn/klines/client/rest.py +23 -4
  35. crypticorn/klines/main.py +89 -12
  36. crypticorn/metrics/client/api/admin_api.py +1234 -51
  37. crypticorn/metrics/client/api/exchanges_api.py +1405 -140
  38. crypticorn/metrics/client/api/indicators_api.py +640 -13
  39. crypticorn/metrics/client/api/logs_api.py +305 -7
  40. crypticorn/metrics/client/api/marketcap_api.py +1240 -60
  41. crypticorn/metrics/client/api/markets_api.py +352 -7
  42. crypticorn/metrics/client/api/quote_currencies_api.py +237 -7
  43. crypticorn/metrics/client/api/status_api.py +415 -13
  44. crypticorn/metrics/client/api/tokens_api.py +400 -13
  45. crypticorn/metrics/client/configuration.py +4 -2
  46. crypticorn/metrics/client/rest.py +23 -4
  47. crypticorn/metrics/main.py +113 -19
  48. crypticorn/pay/client/api/admin_api.py +1720 -126
  49. crypticorn/pay/client/api/now_payments_api.py +1013 -42
  50. crypticorn/pay/client/api/payments_api.py +580 -13
  51. crypticorn/pay/client/api/products_api.py +915 -25
  52. crypticorn/pay/client/api/status_api.py +415 -13
  53. crypticorn/pay/client/configuration.py +2 -2
  54. crypticorn/pay/client/models/api_error_identifier.py +7 -7
  55. crypticorn/pay/client/models/scope.py +1 -0
  56. crypticorn/pay/client/rest.py +23 -4
  57. crypticorn/pay/main.py +10 -6
  58. crypticorn/trade/client/__init__.py +2 -1
  59. crypticorn/trade/client/api/__init__.py +0 -1
  60. crypticorn/trade/client/api/admin_api.py +1718 -123
  61. crypticorn/trade/client/api/api_keys_api.py +1596 -103
  62. crypticorn/trade/client/api/bots_api.py +1106 -47
  63. crypticorn/trade/client/api/exchanges_api.py +592 -19
  64. crypticorn/trade/client/api/notifications_api.py +1340 -112
  65. crypticorn/trade/client/api/orders_api.py +240 -7
  66. crypticorn/trade/client/api/status_api.py +415 -13
  67. crypticorn/trade/client/api/strategies_api.py +1170 -69
  68. crypticorn/trade/client/api/trading_actions_api.py +650 -19
  69. crypticorn/trade/client/models/__init__.py +2 -0
  70. crypticorn/trade/client/models/exchange.py +6 -1
  71. crypticorn/trade/client/models/exchange_key_balance.py +111 -0
  72. crypticorn/trade/client/models/futures_balance.py +27 -25
  73. crypticorn/trade/client/models/spot_balance.py +110 -0
  74. crypticorn/trade/client/models/strategy.py +5 -3
  75. crypticorn/trade/client/models/strategy_create.py +6 -4
  76. crypticorn/trade/client/models/strategy_exchange_info.py +16 -4
  77. crypticorn/trade/client/models/strategy_update.py +2 -2
  78. crypticorn/trade/client/rest.py +23 -4
  79. crypticorn/trade/main.py +15 -12
  80. {crypticorn-2.17.0rc1.dist-info → crypticorn-2.17.0rc2.dist-info}/METADATA +64 -20
  81. {crypticorn-2.17.0rc1.dist-info → crypticorn-2.17.0rc2.dist-info}/RECORD +85 -84
  82. crypticorn/trade/client/api/futures_trading_panel_api.py +0 -1285
  83. {crypticorn-2.17.0rc1.dist-info → crypticorn-2.17.0rc2.dist-info}/WHEEL +0 -0
  84. {crypticorn-2.17.0rc1.dist-info → crypticorn-2.17.0rc2.dist-info}/entry_points.txt +0 -0
  85. {crypticorn-2.17.0rc1.dist-info → crypticorn-2.17.0rc2.dist-info}/licenses/LICENSE +0 -0
  86. {crypticorn-2.17.0rc1.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
- async def get_available_markets_for_symbol(
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 get_available_markets_for_symbol_with_http_info(
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 get_available_markets_for_symbol_without_preload_content(
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.response
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
- async def get_quote_currencies(
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 get_quote_currencies_with_http_info(
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 get_quote_currencies_without_preload_content(
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.response
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,