crypticorn 2.16.0__py3-none-any.whl → 2.17.0__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 (164) hide show
  1. crypticorn/__init__.py +2 -2
  2. crypticorn/auth/client/api/admin_api.py +397 -13
  3. crypticorn/auth/client/api/auth_api.py +3610 -341
  4. crypticorn/auth/client/api/service_api.py +249 -7
  5. crypticorn/auth/client/api/user_api.py +2295 -179
  6. crypticorn/auth/client/api/wallet_api.py +1468 -81
  7. crypticorn/auth/client/configuration.py +2 -2
  8. crypticorn/auth/client/models/create_api_key_request.py +2 -1
  9. crypticorn/auth/client/models/get_api_keys200_response_inner.py +2 -1
  10. crypticorn/auth/client/rest.py +23 -4
  11. crypticorn/auth/main.py +8 -5
  12. crypticorn/cli/init.py +1 -1
  13. crypticorn/cli/templates/.env.docker.temp +3 -0
  14. crypticorn/cli/templates/.env.example.temp +4 -0
  15. crypticorn/cli/templates/Dockerfile +5 -2
  16. crypticorn/client.py +226 -59
  17. crypticorn/common/__init__.py +1 -0
  18. crypticorn/common/auth.py +45 -14
  19. crypticorn/common/decorators.py +1 -2
  20. crypticorn/common/enums.py +0 -2
  21. crypticorn/common/errors.py +10 -0
  22. crypticorn/common/metrics.py +30 -0
  23. crypticorn/common/middleware.py +94 -1
  24. crypticorn/common/pagination.py +252 -20
  25. crypticorn/common/router/admin_router.py +2 -2
  26. crypticorn/common/router/status_router.py +40 -2
  27. crypticorn/common/scopes.py +2 -2
  28. crypticorn/common/warnings.py +7 -0
  29. crypticorn/dex/__init__.py +6 -0
  30. crypticorn/dex/client/__init__.py +49 -0
  31. crypticorn/dex/client/api/__init__.py +6 -0
  32. crypticorn/dex/client/api/admin_api.py +2986 -0
  33. crypticorn/dex/client/api/signals_api.py +1798 -0
  34. crypticorn/dex/client/api/status_api.py +892 -0
  35. crypticorn/dex/client/api_client.py +758 -0
  36. crypticorn/dex/client/api_response.py +20 -0
  37. crypticorn/dex/client/configuration.py +620 -0
  38. crypticorn/dex/client/exceptions.py +220 -0
  39. crypticorn/dex/client/models/__init__.py +30 -0
  40. crypticorn/dex/client/models/api_error_identifier.py +121 -0
  41. crypticorn/dex/client/models/api_error_level.py +37 -0
  42. crypticorn/dex/client/models/api_error_type.py +37 -0
  43. crypticorn/dex/client/models/exception_detail.py +117 -0
  44. crypticorn/dex/client/models/log_level.py +38 -0
  45. crypticorn/dex/client/models/paginated_response_signal_with_token.py +134 -0
  46. crypticorn/dex/client/models/risk.py +86 -0
  47. crypticorn/dex/client/models/signal_overview_stats.py +158 -0
  48. crypticorn/dex/client/models/signal_volume.py +84 -0
  49. crypticorn/dex/client/models/signal_with_token.py +163 -0
  50. crypticorn/dex/client/models/token_data.py +127 -0
  51. crypticorn/dex/client/models/token_detail.py +116 -0
  52. crypticorn/dex/client/py.typed +0 -0
  53. crypticorn/dex/client/rest.py +217 -0
  54. crypticorn/dex/main.py +1 -0
  55. crypticorn/hive/client/api/admin_api.py +1173 -47
  56. crypticorn/hive/client/api/data_api.py +499 -17
  57. crypticorn/hive/client/api/models_api.py +1595 -87
  58. crypticorn/hive/client/api/status_api.py +397 -16
  59. crypticorn/hive/client/api_client.py +0 -5
  60. crypticorn/hive/client/models/api_error_identifier.py +1 -1
  61. crypticorn/hive/client/models/coin_info.py +1 -1
  62. crypticorn/hive/client/models/exception_detail.py +1 -1
  63. crypticorn/hive/client/models/target_info.py +1 -1
  64. crypticorn/hive/client/rest.py +23 -4
  65. crypticorn/hive/main.py +99 -25
  66. crypticorn/hive/utils.py +2 -2
  67. crypticorn/klines/client/api/admin_api.py +1173 -47
  68. crypticorn/klines/client/api/change_in_timeframe_api.py +269 -11
  69. crypticorn/klines/client/api/funding_rates_api.py +315 -11
  70. crypticorn/klines/client/api/ohlcv_data_api.py +390 -11
  71. crypticorn/klines/client/api/status_api.py +397 -16
  72. crypticorn/klines/client/api/symbols_api.py +216 -11
  73. crypticorn/klines/client/api/udf_api.py +1268 -51
  74. crypticorn/klines/client/api_client.py +0 -5
  75. crypticorn/klines/client/models/api_error_identifier.py +3 -1
  76. crypticorn/klines/client/models/exception_detail.py +1 -1
  77. crypticorn/klines/client/models/ohlcv.py +1 -1
  78. crypticorn/klines/client/models/symbol_group.py +1 -1
  79. crypticorn/klines/client/models/udf_config.py +1 -1
  80. crypticorn/klines/client/rest.py +23 -4
  81. crypticorn/klines/main.py +89 -12
  82. crypticorn/metrics/client/api/admin_api.py +1173 -47
  83. crypticorn/metrics/client/api/exchanges_api.py +1370 -145
  84. crypticorn/metrics/client/api/indicators_api.py +622 -17
  85. crypticorn/metrics/client/api/logs_api.py +296 -11
  86. crypticorn/metrics/client/api/marketcap_api.py +1207 -67
  87. crypticorn/metrics/client/api/markets_api.py +343 -11
  88. crypticorn/metrics/client/api/quote_currencies_api.py +228 -11
  89. crypticorn/metrics/client/api/status_api.py +397 -16
  90. crypticorn/metrics/client/api/tokens_api.py +382 -15
  91. crypticorn/metrics/client/api_client.py +0 -5
  92. crypticorn/metrics/client/configuration.py +4 -2
  93. crypticorn/metrics/client/models/exception_detail.py +1 -1
  94. crypticorn/metrics/client/models/exchange_mapping.py +1 -1
  95. crypticorn/metrics/client/models/marketcap_ranking.py +1 -1
  96. crypticorn/metrics/client/models/marketcap_symbol_ranking.py +1 -1
  97. crypticorn/metrics/client/models/ohlcv.py +1 -1
  98. crypticorn/metrics/client/rest.py +23 -4
  99. crypticorn/metrics/main.py +113 -19
  100. crypticorn/pay/client/api/admin_api.py +1585 -57
  101. crypticorn/pay/client/api/now_payments_api.py +961 -39
  102. crypticorn/pay/client/api/payments_api.py +562 -17
  103. crypticorn/pay/client/api/products_api.py +880 -30
  104. crypticorn/pay/client/api/status_api.py +397 -16
  105. crypticorn/pay/client/api_client.py +0 -5
  106. crypticorn/pay/client/configuration.py +2 -2
  107. crypticorn/pay/client/models/api_error_identifier.py +7 -7
  108. crypticorn/pay/client/models/exception_detail.py +1 -1
  109. crypticorn/pay/client/models/now_create_invoice_req.py +1 -1
  110. crypticorn/pay/client/models/now_create_invoice_res.py +1 -1
  111. crypticorn/pay/client/models/product.py +1 -1
  112. crypticorn/pay/client/models/product_create.py +1 -1
  113. crypticorn/pay/client/models/product_update.py +1 -1
  114. crypticorn/pay/client/models/scope.py +1 -0
  115. crypticorn/pay/client/rest.py +23 -4
  116. crypticorn/pay/main.py +10 -6
  117. crypticorn/trade/client/__init__.py +11 -1
  118. crypticorn/trade/client/api/__init__.py +0 -1
  119. crypticorn/trade/client/api/admin_api.py +1184 -55
  120. crypticorn/trade/client/api/api_keys_api.py +1678 -162
  121. crypticorn/trade/client/api/bots_api.py +7563 -187
  122. crypticorn/trade/client/api/exchanges_api.py +565 -19
  123. crypticorn/trade/client/api/notifications_api.py +1290 -116
  124. crypticorn/trade/client/api/orders_api.py +393 -55
  125. crypticorn/trade/client/api/status_api.py +397 -13
  126. crypticorn/trade/client/api/strategies_api.py +1133 -77
  127. crypticorn/trade/client/api/trading_actions_api.py +786 -65
  128. crypticorn/trade/client/models/__init__.py +11 -0
  129. crypticorn/trade/client/models/actions_count.py +88 -0
  130. crypticorn/trade/client/models/api_error_identifier.py +1 -0
  131. crypticorn/trade/client/models/bot.py +7 -18
  132. crypticorn/trade/client/models/bot_create.py +17 -1
  133. crypticorn/trade/client/models/bot_update.py +17 -1
  134. crypticorn/trade/client/models/exchange.py +6 -1
  135. crypticorn/trade/client/models/exchange_key.py +1 -1
  136. crypticorn/trade/client/models/exchange_key_balance.py +111 -0
  137. crypticorn/trade/client/models/exchange_key_create.py +17 -1
  138. crypticorn/trade/client/models/exchange_key_update.py +17 -1
  139. crypticorn/trade/client/models/execution_ids.py +1 -1
  140. crypticorn/trade/client/models/futures_balance.py +27 -25
  141. crypticorn/trade/client/models/notification.py +17 -1
  142. crypticorn/trade/client/models/notification_create.py +18 -2
  143. crypticorn/trade/client/models/notification_update.py +17 -1
  144. crypticorn/trade/client/models/orders_count.py +88 -0
  145. crypticorn/trade/client/models/paginated_response_futures_trading_action.py +134 -0
  146. crypticorn/trade/client/models/paginated_response_order.py +134 -0
  147. crypticorn/trade/client/models/pn_l.py +95 -0
  148. crypticorn/trade/client/models/post_futures_action.py +1 -1
  149. crypticorn/trade/client/models/spot_balance.py +109 -0
  150. crypticorn/trade/client/models/strategy.py +22 -4
  151. crypticorn/trade/client/models/strategy_create.py +23 -5
  152. crypticorn/trade/client/models/strategy_exchange_info.py +16 -4
  153. crypticorn/trade/client/models/strategy_update.py +19 -3
  154. crypticorn/trade/client/models/tpsl.py +4 -19
  155. crypticorn/trade/client/models/tpsl_create.py +6 -19
  156. crypticorn/trade/client/rest.py +23 -4
  157. crypticorn/trade/main.py +15 -12
  158. {crypticorn-2.16.0.dist-info → crypticorn-2.17.0.dist-info}/METADATA +65 -20
  159. {crypticorn-2.16.0.dist-info → crypticorn-2.17.0.dist-info}/RECORD +163 -128
  160. crypticorn/trade/client/api/futures_trading_panel_api.py +0 -1285
  161. {crypticorn-2.16.0.dist-info → crypticorn-2.17.0.dist-info}/WHEEL +0 -0
  162. {crypticorn-2.16.0.dist-info → crypticorn-2.17.0.dist-info}/entry_points.txt +0 -0
  163. {crypticorn-2.16.0.dist-info → crypticorn-2.17.0.dist-info}/licenses/LICENSE +0 -0
  164. {crypticorn-2.16.0.dist-info → crypticorn-2.17.0.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,24 @@ from crypticorn.trade.client.api_client import ApiClient, RequestSerialized
23
23
  from crypticorn.trade.client.api_response import ApiResponse
24
24
  from crypticorn.trade.client.rest import RESTResponseType
25
25
 
26
+ # Import async_to_sync for sync methods
27
+ try:
28
+ from asgiref.sync import async_to_sync
29
+
30
+ _HAS_ASGIREF = True
31
+ except ImportError:
32
+ _HAS_ASGIREF = False
33
+
34
+ def async_to_sync(async_func):
35
+ """Fallback decorator that raises an error if asgiref is not available."""
36
+
37
+ def wrapper(*args, **kwargs):
38
+ raise ImportError(
39
+ "asgiref is required for sync methods. Install with: pip install asgiref"
40
+ )
41
+
42
+ return wrapper
43
+
26
44
 
27
45
  class ExchangesApi:
28
46
  """NOTE: This class is auto generated by OpenAPI Generator
@@ -31,13 +49,117 @@ class ExchangesApi:
31
49
  Do not edit the class manually.
32
50
  """
33
51
 
34
- def __init__(self, api_client=None) -> None:
52
+ def __init__(self, api_client=None, is_sync: bool = False) -> None:
35
53
  if api_client is None:
36
54
  api_client = ApiClient.get_default()
37
55
  self.api_client = api_client
56
+ self.is_sync = is_sync
38
57
 
39
58
  @validate_call
40
- async def get_all_exchanges(
59
+ def get_all_exchanges(
60
+ self,
61
+ _request_timeout: Union[
62
+ None,
63
+ Annotated[StrictFloat, Field(gt=0)],
64
+ Tuple[
65
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
66
+ ],
67
+ ] = None,
68
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
69
+ _content_type: Optional[StrictStr] = None,
70
+ _headers: Optional[Dict[StrictStr, Any]] = None,
71
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
72
+ ) -> List[Exchange]:
73
+ """Get All Exchanges"""
74
+ if self.is_sync:
75
+ return self._get_all_exchanges_sync(
76
+ _request_timeout=_request_timeout,
77
+ _request_auth=_request_auth,
78
+ _content_type=_content_type,
79
+ _headers=_headers,
80
+ _host_index=_host_index,
81
+ )
82
+
83
+ else:
84
+ return self._get_all_exchanges_async(
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
+ @validate_call
93
+ def get_all_exchanges_with_http_info(
94
+ self,
95
+ _request_timeout: Union[
96
+ None,
97
+ Annotated[StrictFloat, Field(gt=0)],
98
+ Tuple[
99
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
100
+ ],
101
+ ] = None,
102
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
103
+ _content_type: Optional[StrictStr] = None,
104
+ _headers: Optional[Dict[StrictStr, Any]] = None,
105
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
106
+ ) -> ApiResponse[List[Exchange]]:
107
+ """Get All Exchanges with HTTP info"""
108
+ if self.is_sync:
109
+ return self._get_all_exchanges_sync_with_http_info(
110
+ _request_timeout=_request_timeout,
111
+ _request_auth=_request_auth,
112
+ _content_type=_content_type,
113
+ _headers=_headers,
114
+ _host_index=_host_index,
115
+ )
116
+
117
+ else:
118
+ return self._get_all_exchanges_async_with_http_info(
119
+ _request_timeout=_request_timeout,
120
+ _request_auth=_request_auth,
121
+ _content_type=_content_type,
122
+ _headers=_headers,
123
+ _host_index=_host_index,
124
+ )
125
+
126
+ @validate_call
127
+ def get_all_exchanges_without_preload_content(
128
+ self,
129
+ _request_timeout: Union[
130
+ None,
131
+ Annotated[StrictFloat, Field(gt=0)],
132
+ Tuple[
133
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
134
+ ],
135
+ ] = None,
136
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
137
+ _content_type: Optional[StrictStr] = None,
138
+ _headers: Optional[Dict[StrictStr, Any]] = None,
139
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
140
+ ) -> RESTResponseType:
141
+ """Get All Exchanges without preloading content"""
142
+ if self.is_sync:
143
+ return self._get_all_exchanges_sync_without_preload_content(
144
+ _request_timeout=_request_timeout,
145
+ _request_auth=_request_auth,
146
+ _content_type=_content_type,
147
+ _headers=_headers,
148
+ _host_index=_host_index,
149
+ )
150
+
151
+ else:
152
+ return self._get_all_exchanges_async_without_preload_content(
153
+ _request_timeout=_request_timeout,
154
+ _request_auth=_request_auth,
155
+ _content_type=_content_type,
156
+ _headers=_headers,
157
+ _host_index=_host_index,
158
+ )
159
+
160
+ # Private async implementation methods
161
+ @validate_call
162
+ async def _get_all_exchanges_async(
41
163
  self,
42
164
  _request_timeout: Union[
43
165
  None,
@@ -97,7 +219,7 @@ class ExchangesApi:
97
219
  ).data
98
220
 
99
221
  @validate_call
100
- async def get_all_exchanges_with_http_info(
222
+ async def _get_all_exchanges_async_with_http_info(
101
223
  self,
102
224
  _request_timeout: Union[
103
225
  None,
@@ -152,12 +274,11 @@ class ExchangesApi:
152
274
  )
153
275
  await response_data.read()
154
276
  return self.api_client.response_deserialize(
155
- response_data=response_data,
156
- response_types_map=_response_types_map,
277
+ response_data=response_data, response_types_map=_response_types_map
157
278
  )
158
279
 
159
280
  @validate_call
160
- async def get_all_exchanges_without_preload_content(
281
+ async def _get_all_exchanges_async_without_preload_content(
161
282
  self,
162
283
  _request_timeout: Union[
163
284
  None,
@@ -210,7 +331,80 @@ class ExchangesApi:
210
331
  response_data = await self.api_client.call_api(
211
332
  *_param, _request_timeout=_request_timeout
212
333
  )
213
- return response_data.response
334
+ return response_data
335
+
336
+ # Private sync implementation methods
337
+ @validate_call
338
+ def _get_all_exchanges_sync(
339
+ self,
340
+ _request_timeout: Union[
341
+ None,
342
+ Annotated[StrictFloat, Field(gt=0)],
343
+ Tuple[
344
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
345
+ ],
346
+ ] = None,
347
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
348
+ _content_type: Optional[StrictStr] = None,
349
+ _headers: Optional[Dict[StrictStr, Any]] = None,
350
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
351
+ ) -> List[Exchange]:
352
+ """Synchronous version of get_all_exchanges"""
353
+ return async_to_sync(self._get_all_exchanges_async)(
354
+ _request_timeout=_request_timeout,
355
+ _request_auth=_request_auth,
356
+ _content_type=_content_type,
357
+ _headers=_headers,
358
+ _host_index=_host_index,
359
+ )
360
+
361
+ @validate_call
362
+ def _get_all_exchanges_sync_with_http_info(
363
+ self,
364
+ _request_timeout: Union[
365
+ None,
366
+ Annotated[StrictFloat, Field(gt=0)],
367
+ Tuple[
368
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
369
+ ],
370
+ ] = None,
371
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
372
+ _content_type: Optional[StrictStr] = None,
373
+ _headers: Optional[Dict[StrictStr, Any]] = None,
374
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
375
+ ) -> ApiResponse[List[Exchange]]:
376
+ """Synchronous version of get_all_exchanges_with_http_info"""
377
+ return async_to_sync(self._get_all_exchanges_async_with_http_info)(
378
+ _request_timeout=_request_timeout,
379
+ _request_auth=_request_auth,
380
+ _content_type=_content_type,
381
+ _headers=_headers,
382
+ _host_index=_host_index,
383
+ )
384
+
385
+ @validate_call
386
+ def _get_all_exchanges_sync_without_preload_content(
387
+ self,
388
+ _request_timeout: Union[
389
+ None,
390
+ Annotated[StrictFloat, Field(gt=0)],
391
+ Tuple[
392
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
393
+ ],
394
+ ] = None,
395
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
396
+ _content_type: Optional[StrictStr] = None,
397
+ _headers: Optional[Dict[StrictStr, Any]] = None,
398
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
399
+ ) -> RESTResponseType:
400
+ """Synchronous version of get_all_exchanges_without_preload_content"""
401
+ return async_to_sync(self._get_all_exchanges_async_without_preload_content)(
402
+ _request_timeout=_request_timeout,
403
+ _request_auth=_request_auth,
404
+ _content_type=_content_type,
405
+ _headers=_headers,
406
+ _host_index=_host_index,
407
+ )
214
408
 
215
409
  def _get_all_exchanges_serialize(
216
410
  self,
@@ -264,7 +458,110 @@ class ExchangesApi:
264
458
  )
265
459
 
266
460
  @validate_call
267
- async def get_planned_exchanges(
461
+ def get_planned_exchanges(
462
+ self,
463
+ _request_timeout: Union[
464
+ None,
465
+ Annotated[StrictFloat, Field(gt=0)],
466
+ Tuple[
467
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
468
+ ],
469
+ ] = None,
470
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
471
+ _content_type: Optional[StrictStr] = None,
472
+ _headers: Optional[Dict[StrictStr, Any]] = None,
473
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
474
+ ) -> List[Exchange]:
475
+ """Get Planned Exchanges"""
476
+ if self.is_sync:
477
+ return self._get_planned_exchanges_sync(
478
+ _request_timeout=_request_timeout,
479
+ _request_auth=_request_auth,
480
+ _content_type=_content_type,
481
+ _headers=_headers,
482
+ _host_index=_host_index,
483
+ )
484
+
485
+ else:
486
+ return self._get_planned_exchanges_async(
487
+ _request_timeout=_request_timeout,
488
+ _request_auth=_request_auth,
489
+ _content_type=_content_type,
490
+ _headers=_headers,
491
+ _host_index=_host_index,
492
+ )
493
+
494
+ @validate_call
495
+ def get_planned_exchanges_with_http_info(
496
+ self,
497
+ _request_timeout: Union[
498
+ None,
499
+ Annotated[StrictFloat, Field(gt=0)],
500
+ Tuple[
501
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
502
+ ],
503
+ ] = None,
504
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
505
+ _content_type: Optional[StrictStr] = None,
506
+ _headers: Optional[Dict[StrictStr, Any]] = None,
507
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
508
+ ) -> ApiResponse[List[Exchange]]:
509
+ """Get Planned Exchanges with HTTP info"""
510
+ if self.is_sync:
511
+ return self._get_planned_exchanges_sync_with_http_info(
512
+ _request_timeout=_request_timeout,
513
+ _request_auth=_request_auth,
514
+ _content_type=_content_type,
515
+ _headers=_headers,
516
+ _host_index=_host_index,
517
+ )
518
+
519
+ else:
520
+ return self._get_planned_exchanges_async_with_http_info(
521
+ _request_timeout=_request_timeout,
522
+ _request_auth=_request_auth,
523
+ _content_type=_content_type,
524
+ _headers=_headers,
525
+ _host_index=_host_index,
526
+ )
527
+
528
+ @validate_call
529
+ def get_planned_exchanges_without_preload_content(
530
+ self,
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
+ ) -> RESTResponseType:
543
+ """Get Planned Exchanges without preloading content"""
544
+ if self.is_sync:
545
+ return self._get_planned_exchanges_sync_without_preload_content(
546
+ _request_timeout=_request_timeout,
547
+ _request_auth=_request_auth,
548
+ _content_type=_content_type,
549
+ _headers=_headers,
550
+ _host_index=_host_index,
551
+ )
552
+
553
+ else:
554
+ return self._get_planned_exchanges_async_without_preload_content(
555
+ _request_timeout=_request_timeout,
556
+ _request_auth=_request_auth,
557
+ _content_type=_content_type,
558
+ _headers=_headers,
559
+ _host_index=_host_index,
560
+ )
561
+
562
+ # Private async implementation methods
563
+ @validate_call
564
+ async def _get_planned_exchanges_async(
268
565
  self,
269
566
  _request_timeout: Union[
270
567
  None,
@@ -324,7 +621,7 @@ class ExchangesApi:
324
621
  ).data
325
622
 
326
623
  @validate_call
327
- async def get_planned_exchanges_with_http_info(
624
+ async def _get_planned_exchanges_async_with_http_info(
328
625
  self,
329
626
  _request_timeout: Union[
330
627
  None,
@@ -379,12 +676,11 @@ class ExchangesApi:
379
676
  )
380
677
  await response_data.read()
381
678
  return self.api_client.response_deserialize(
382
- response_data=response_data,
383
- response_types_map=_response_types_map,
679
+ response_data=response_data, response_types_map=_response_types_map
384
680
  )
385
681
 
386
682
  @validate_call
387
- async def get_planned_exchanges_without_preload_content(
683
+ async def _get_planned_exchanges_async_without_preload_content(
388
684
  self,
389
685
  _request_timeout: Union[
390
686
  None,
@@ -437,7 +733,80 @@ class ExchangesApi:
437
733
  response_data = await self.api_client.call_api(
438
734
  *_param, _request_timeout=_request_timeout
439
735
  )
440
- return response_data.response
736
+ return response_data
737
+
738
+ # Private sync implementation methods
739
+ @validate_call
740
+ def _get_planned_exchanges_sync(
741
+ self,
742
+ _request_timeout: Union[
743
+ None,
744
+ Annotated[StrictFloat, Field(gt=0)],
745
+ Tuple[
746
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
747
+ ],
748
+ ] = None,
749
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
750
+ _content_type: Optional[StrictStr] = None,
751
+ _headers: Optional[Dict[StrictStr, Any]] = None,
752
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
753
+ ) -> List[Exchange]:
754
+ """Synchronous version of get_planned_exchanges"""
755
+ return async_to_sync(self._get_planned_exchanges_async)(
756
+ _request_timeout=_request_timeout,
757
+ _request_auth=_request_auth,
758
+ _content_type=_content_type,
759
+ _headers=_headers,
760
+ _host_index=_host_index,
761
+ )
762
+
763
+ @validate_call
764
+ def _get_planned_exchanges_sync_with_http_info(
765
+ self,
766
+ _request_timeout: Union[
767
+ None,
768
+ Annotated[StrictFloat, Field(gt=0)],
769
+ Tuple[
770
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
771
+ ],
772
+ ] = None,
773
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
774
+ _content_type: Optional[StrictStr] = None,
775
+ _headers: Optional[Dict[StrictStr, Any]] = None,
776
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
777
+ ) -> ApiResponse[List[Exchange]]:
778
+ """Synchronous version of get_planned_exchanges_with_http_info"""
779
+ return async_to_sync(self._get_planned_exchanges_async_with_http_info)(
780
+ _request_timeout=_request_timeout,
781
+ _request_auth=_request_auth,
782
+ _content_type=_content_type,
783
+ _headers=_headers,
784
+ _host_index=_host_index,
785
+ )
786
+
787
+ @validate_call
788
+ def _get_planned_exchanges_sync_without_preload_content(
789
+ self,
790
+ _request_timeout: Union[
791
+ None,
792
+ Annotated[StrictFloat, Field(gt=0)],
793
+ Tuple[
794
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
795
+ ],
796
+ ] = None,
797
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
798
+ _content_type: Optional[StrictStr] = None,
799
+ _headers: Optional[Dict[StrictStr, Any]] = None,
800
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
801
+ ) -> RESTResponseType:
802
+ """Synchronous version of get_planned_exchanges_without_preload_content"""
803
+ return async_to_sync(self._get_planned_exchanges_async_without_preload_content)(
804
+ _request_timeout=_request_timeout,
805
+ _request_auth=_request_auth,
806
+ _content_type=_content_type,
807
+ _headers=_headers,
808
+ _host_index=_host_index,
809
+ )
441
810
 
442
811
  def _get_planned_exchanges_serialize(
443
812
  self,
@@ -491,7 +860,110 @@ class ExchangesApi:
491
860
  )
492
861
 
493
862
  @validate_call
494
- async def get_tradeable_exchanges(
863
+ def get_tradeable_exchanges(
864
+ self,
865
+ _request_timeout: Union[
866
+ None,
867
+ Annotated[StrictFloat, Field(gt=0)],
868
+ Tuple[
869
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
870
+ ],
871
+ ] = None,
872
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
873
+ _content_type: Optional[StrictStr] = None,
874
+ _headers: Optional[Dict[StrictStr, Any]] = None,
875
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
876
+ ) -> List[Exchange]:
877
+ """Get Tradeable Exchanges"""
878
+ if self.is_sync:
879
+ return self._get_tradeable_exchanges_sync(
880
+ _request_timeout=_request_timeout,
881
+ _request_auth=_request_auth,
882
+ _content_type=_content_type,
883
+ _headers=_headers,
884
+ _host_index=_host_index,
885
+ )
886
+
887
+ else:
888
+ return self._get_tradeable_exchanges_async(
889
+ _request_timeout=_request_timeout,
890
+ _request_auth=_request_auth,
891
+ _content_type=_content_type,
892
+ _headers=_headers,
893
+ _host_index=_host_index,
894
+ )
895
+
896
+ @validate_call
897
+ def get_tradeable_exchanges_with_http_info(
898
+ self,
899
+ _request_timeout: Union[
900
+ None,
901
+ Annotated[StrictFloat, Field(gt=0)],
902
+ Tuple[
903
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
904
+ ],
905
+ ] = None,
906
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
907
+ _content_type: Optional[StrictStr] = None,
908
+ _headers: Optional[Dict[StrictStr, Any]] = None,
909
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
910
+ ) -> ApiResponse[List[Exchange]]:
911
+ """Get Tradeable Exchanges with HTTP info"""
912
+ if self.is_sync:
913
+ return self._get_tradeable_exchanges_sync_with_http_info(
914
+ _request_timeout=_request_timeout,
915
+ _request_auth=_request_auth,
916
+ _content_type=_content_type,
917
+ _headers=_headers,
918
+ _host_index=_host_index,
919
+ )
920
+
921
+ else:
922
+ return self._get_tradeable_exchanges_async_with_http_info(
923
+ _request_timeout=_request_timeout,
924
+ _request_auth=_request_auth,
925
+ _content_type=_content_type,
926
+ _headers=_headers,
927
+ _host_index=_host_index,
928
+ )
929
+
930
+ @validate_call
931
+ def get_tradeable_exchanges_without_preload_content(
932
+ self,
933
+ _request_timeout: Union[
934
+ None,
935
+ Annotated[StrictFloat, Field(gt=0)],
936
+ Tuple[
937
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
938
+ ],
939
+ ] = None,
940
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
941
+ _content_type: Optional[StrictStr] = None,
942
+ _headers: Optional[Dict[StrictStr, Any]] = None,
943
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
944
+ ) -> RESTResponseType:
945
+ """Get Tradeable Exchanges without preloading content"""
946
+ if self.is_sync:
947
+ return self._get_tradeable_exchanges_sync_without_preload_content(
948
+ _request_timeout=_request_timeout,
949
+ _request_auth=_request_auth,
950
+ _content_type=_content_type,
951
+ _headers=_headers,
952
+ _host_index=_host_index,
953
+ )
954
+
955
+ else:
956
+ return self._get_tradeable_exchanges_async_without_preload_content(
957
+ _request_timeout=_request_timeout,
958
+ _request_auth=_request_auth,
959
+ _content_type=_content_type,
960
+ _headers=_headers,
961
+ _host_index=_host_index,
962
+ )
963
+
964
+ # Private async implementation methods
965
+ @validate_call
966
+ async def _get_tradeable_exchanges_async(
495
967
  self,
496
968
  _request_timeout: Union[
497
969
  None,
@@ -551,7 +1023,7 @@ class ExchangesApi:
551
1023
  ).data
552
1024
 
553
1025
  @validate_call
554
- async def get_tradeable_exchanges_with_http_info(
1026
+ async def _get_tradeable_exchanges_async_with_http_info(
555
1027
  self,
556
1028
  _request_timeout: Union[
557
1029
  None,
@@ -606,12 +1078,11 @@ class ExchangesApi:
606
1078
  )
607
1079
  await response_data.read()
608
1080
  return self.api_client.response_deserialize(
609
- response_data=response_data,
610
- response_types_map=_response_types_map,
1081
+ response_data=response_data, response_types_map=_response_types_map
611
1082
  )
612
1083
 
613
1084
  @validate_call
614
- async def get_tradeable_exchanges_without_preload_content(
1085
+ async def _get_tradeable_exchanges_async_without_preload_content(
615
1086
  self,
616
1087
  _request_timeout: Union[
617
1088
  None,
@@ -664,7 +1135,82 @@ class ExchangesApi:
664
1135
  response_data = await self.api_client.call_api(
665
1136
  *_param, _request_timeout=_request_timeout
666
1137
  )
667
- return response_data.response
1138
+ return response_data
1139
+
1140
+ # Private sync implementation methods
1141
+ @validate_call
1142
+ def _get_tradeable_exchanges_sync(
1143
+ self,
1144
+ _request_timeout: Union[
1145
+ None,
1146
+ Annotated[StrictFloat, Field(gt=0)],
1147
+ Tuple[
1148
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1149
+ ],
1150
+ ] = None,
1151
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1152
+ _content_type: Optional[StrictStr] = None,
1153
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1154
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1155
+ ) -> List[Exchange]:
1156
+ """Synchronous version of get_tradeable_exchanges"""
1157
+ return async_to_sync(self._get_tradeable_exchanges_async)(
1158
+ _request_timeout=_request_timeout,
1159
+ _request_auth=_request_auth,
1160
+ _content_type=_content_type,
1161
+ _headers=_headers,
1162
+ _host_index=_host_index,
1163
+ )
1164
+
1165
+ @validate_call
1166
+ def _get_tradeable_exchanges_sync_with_http_info(
1167
+ self,
1168
+ _request_timeout: Union[
1169
+ None,
1170
+ Annotated[StrictFloat, Field(gt=0)],
1171
+ Tuple[
1172
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1173
+ ],
1174
+ ] = None,
1175
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1176
+ _content_type: Optional[StrictStr] = None,
1177
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1178
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1179
+ ) -> ApiResponse[List[Exchange]]:
1180
+ """Synchronous version of get_tradeable_exchanges_with_http_info"""
1181
+ return async_to_sync(self._get_tradeable_exchanges_async_with_http_info)(
1182
+ _request_timeout=_request_timeout,
1183
+ _request_auth=_request_auth,
1184
+ _content_type=_content_type,
1185
+ _headers=_headers,
1186
+ _host_index=_host_index,
1187
+ )
1188
+
1189
+ @validate_call
1190
+ def _get_tradeable_exchanges_sync_without_preload_content(
1191
+ self,
1192
+ _request_timeout: Union[
1193
+ None,
1194
+ Annotated[StrictFloat, Field(gt=0)],
1195
+ Tuple[
1196
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1197
+ ],
1198
+ ] = None,
1199
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1200
+ _content_type: Optional[StrictStr] = None,
1201
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1202
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1203
+ ) -> RESTResponseType:
1204
+ """Synchronous version of get_tradeable_exchanges_without_preload_content"""
1205
+ return async_to_sync(
1206
+ self._get_tradeable_exchanges_async_without_preload_content
1207
+ )(
1208
+ _request_timeout=_request_timeout,
1209
+ _request_auth=_request_auth,
1210
+ _content_type=_content_type,
1211
+ _headers=_headers,
1212
+ _host_index=_host_index,
1213
+ )
668
1214
 
669
1215
  def _get_tradeable_exchanges_serialize(
670
1216
  self,