crypticorn 2.17.0rc3__py3-none-any.whl → 2.17.0rc5__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 (137) hide show
  1. crypticorn/auth/client/api/admin_api.py +0 -2
  2. crypticorn/auth/client/api/auth_api.py +0 -4
  3. crypticorn/auth/client/api/service_api.py +0 -4
  4. crypticorn/auth/client/api/user_api.py +0 -4
  5. crypticorn/auth/client/api/wallet_api.py +0 -4
  6. crypticorn/auth/client/api_client.py +0 -5
  7. crypticorn/auth/client/models/add_wallet_request.py +1 -1
  8. crypticorn/auth/client/models/authorize_user_request.py +1 -1
  9. crypticorn/auth/client/models/create_api_key_request.py +1 -1
  10. crypticorn/auth/client/models/create_user_request.py +1 -1
  11. crypticorn/auth/client/models/get_api_keys200_response_inner.py +1 -1
  12. crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +1 -1
  13. crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +1 -1
  14. crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +1 -1
  15. crypticorn/auth/client/models/list_wallets200_response_data_inner.py +1 -1
  16. crypticorn/auth/client/models/logout_default_response.py +1 -1
  17. crypticorn/auth/client/models/oauth_callback200_response_user.py +1 -1
  18. crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +1 -1
  19. crypticorn/auth/client/models/rotate_tokens200_response.py +1 -1
  20. crypticorn/auth/client/models/token_info200_response.py +1 -1
  21. crypticorn/auth/client/models/update_user_request.py +1 -1
  22. crypticorn/auth/client/models/user_by_username200_response.py +1 -1
  23. crypticorn/auth/client/models/verify200_response.py +1 -1
  24. crypticorn/auth/client/models/verify_email200_response_auth.py +1 -1
  25. crypticorn/auth/client/models/verify_email200_response_auth_auth.py +1 -1
  26. crypticorn/auth/client/models/whoami200_response.py +1 -1
  27. crypticorn/cli/init.py +1 -1
  28. crypticorn/cli/templates/.env.docker.temp +3 -0
  29. crypticorn/cli/templates/.env.example.temp +4 -0
  30. crypticorn/client.py +0 -1
  31. crypticorn/common/auth.py +5 -16
  32. crypticorn/common/decorators.py +1 -2
  33. crypticorn/common/enums.py +0 -2
  34. crypticorn/common/metrics.py +1 -1
  35. crypticorn/common/middleware.py +0 -1
  36. crypticorn/common/pagination.py +135 -22
  37. crypticorn/common/utils.py +1 -2
  38. crypticorn/dex/__init__.py +6 -0
  39. crypticorn/dex/client/__init__.py +49 -0
  40. crypticorn/dex/client/api/__init__.py +6 -0
  41. crypticorn/dex/client/api/admin_api.py +3046 -0
  42. crypticorn/dex/client/api/signals_api.py +1821 -0
  43. crypticorn/dex/client/api/status_api.py +907 -0
  44. crypticorn/dex/client/api_client.py +753 -0
  45. crypticorn/dex/client/api_response.py +20 -0
  46. crypticorn/dex/client/configuration.py +620 -0
  47. crypticorn/dex/client/exceptions.py +220 -0
  48. crypticorn/dex/client/models/__init__.py +30 -0
  49. crypticorn/dex/client/models/api_error_identifier.py +121 -0
  50. crypticorn/dex/client/models/api_error_level.py +37 -0
  51. crypticorn/dex/client/models/api_error_type.py +37 -0
  52. crypticorn/dex/client/models/exception_detail.py +117 -0
  53. crypticorn/dex/client/models/log_level.py +38 -0
  54. crypticorn/dex/client/models/paginated_response_signal_with_token.py +134 -0
  55. crypticorn/dex/client/models/risk.py +86 -0
  56. crypticorn/dex/client/models/signal_overview_stats.py +156 -0
  57. crypticorn/dex/client/models/signal_volume.py +84 -0
  58. crypticorn/dex/client/models/signal_with_token.py +163 -0
  59. crypticorn/dex/client/models/token_data.py +127 -0
  60. crypticorn/dex/client/models/token_detail.py +116 -0
  61. crypticorn/dex/client/py.typed +0 -0
  62. crypticorn/dex/client/rest.py +217 -0
  63. crypticorn/dex/main.py +1 -0
  64. crypticorn/hive/client/api/admin_api.py +0 -3
  65. crypticorn/hive/client/api/data_api.py +0 -4
  66. crypticorn/hive/client/api/models_api.py +1 -4
  67. crypticorn/hive/client/api/status_api.py +0 -3
  68. crypticorn/hive/client/api_client.py +0 -5
  69. crypticorn/hive/client/models/coin_info.py +1 -1
  70. crypticorn/hive/client/models/exception_detail.py +1 -1
  71. crypticorn/hive/client/models/target_info.py +1 -1
  72. crypticorn/hive/utils.py +2 -2
  73. crypticorn/klines/client/api/admin_api.py +0 -3
  74. crypticorn/klines/client/api/change_in_timeframe_api.py +0 -4
  75. crypticorn/klines/client/api/funding_rates_api.py +0 -4
  76. crypticorn/klines/client/api/ohlcv_data_api.py +0 -4
  77. crypticorn/klines/client/api/status_api.py +0 -3
  78. crypticorn/klines/client/api/symbols_api.py +0 -4
  79. crypticorn/klines/client/api/udf_api.py +0 -2
  80. crypticorn/klines/client/api_client.py +0 -5
  81. crypticorn/klines/client/models/exception_detail.py +1 -1
  82. crypticorn/klines/client/models/ohlcv.py +1 -1
  83. crypticorn/klines/client/models/symbol_group.py +1 -1
  84. crypticorn/klines/client/models/udf_config.py +1 -1
  85. crypticorn/metrics/client/api/admin_api.py +0 -3
  86. crypticorn/metrics/client/api/exchanges_api.py +0 -4
  87. crypticorn/metrics/client/api/indicators_api.py +0 -4
  88. crypticorn/metrics/client/api/logs_api.py +0 -4
  89. crypticorn/metrics/client/api/marketcap_api.py +0 -4
  90. crypticorn/metrics/client/api/markets_api.py +0 -4
  91. crypticorn/metrics/client/api/quote_currencies_api.py +0 -4
  92. crypticorn/metrics/client/api/status_api.py +0 -3
  93. crypticorn/metrics/client/api/tokens_api.py +0 -2
  94. crypticorn/metrics/client/api_client.py +0 -5
  95. crypticorn/metrics/client/models/exception_detail.py +1 -1
  96. crypticorn/metrics/client/models/exchange_mapping.py +1 -1
  97. crypticorn/metrics/client/models/marketcap_ranking.py +1 -1
  98. crypticorn/metrics/client/models/marketcap_symbol_ranking.py +1 -1
  99. crypticorn/metrics/client/models/ohlcv.py +1 -1
  100. crypticorn/pay/client/api/admin_api.py +0 -3
  101. crypticorn/pay/client/api/now_payments_api.py +0 -4
  102. crypticorn/pay/client/api/payments_api.py +0 -4
  103. crypticorn/pay/client/api/products_api.py +0 -4
  104. crypticorn/pay/client/api/status_api.py +0 -3
  105. crypticorn/pay/client/api_client.py +0 -5
  106. crypticorn/pay/client/models/exception_detail.py +1 -1
  107. crypticorn/pay/client/models/now_create_invoice_req.py +1 -1
  108. crypticorn/pay/client/models/now_create_invoice_res.py +1 -1
  109. crypticorn/pay/client/models/product.py +1 -1
  110. crypticorn/pay/client/models/product_create.py +1 -1
  111. crypticorn/pay/client/models/product_update.py +1 -1
  112. crypticorn/trade/client/__init__.py +5 -0
  113. crypticorn/trade/client/api/admin_api.py +22 -23
  114. crypticorn/trade/client/api/bots_api.py +4712 -168
  115. crypticorn/trade/client/api/orders_api.py +220 -106
  116. crypticorn/trade/client/configuration.py +2 -2
  117. crypticorn/trade/client/models/__init__.py +5 -0
  118. crypticorn/trade/client/models/bot.py +7 -18
  119. crypticorn/trade/client/models/bot_create.py +17 -1
  120. crypticorn/trade/client/models/bot_update.py +17 -1
  121. crypticorn/trade/client/models/exchange_key_create.py +17 -1
  122. crypticorn/trade/client/models/exchange_key_update.py +17 -1
  123. crypticorn/trade/client/models/notification.py +17 -1
  124. crypticorn/trade/client/models/notification_create.py +17 -1
  125. crypticorn/trade/client/models/notification_update.py +17 -1
  126. crypticorn/trade/client/models/orders_count.py +88 -0
  127. crypticorn/trade/client/models/paginated_response_order.py +134 -0
  128. crypticorn/trade/client/models/pn_l.py +95 -0
  129. crypticorn/trade/client/models/strategy.py +17 -1
  130. crypticorn/trade/client/models/strategy_create.py +17 -1
  131. crypticorn/trade/client/models/strategy_update.py +17 -1
  132. {crypticorn-2.17.0rc3.dist-info → crypticorn-2.17.0rc5.dist-info}/METADATA +1 -1
  133. {crypticorn-2.17.0rc3.dist-info → crypticorn-2.17.0rc5.dist-info}/RECORD +137 -106
  134. {crypticorn-2.17.0rc3.dist-info → crypticorn-2.17.0rc5.dist-info}/WHEEL +0 -0
  135. {crypticorn-2.17.0rc3.dist-info → crypticorn-2.17.0rc5.dist-info}/entry_points.txt +0 -0
  136. {crypticorn-2.17.0rc3.dist-info → crypticorn-2.17.0rc5.dist-info}/licenses/LICENSE +0 -0
  137. {crypticorn-2.17.0rc3.dist-info → crypticorn-2.17.0rc5.dist-info}/top_level.txt +0 -0
@@ -2,13 +2,27 @@
2
2
 
3
3
  from typing import Annotated, Any, Generic, Type, TypeVar, Optional, Literal
4
4
  from pydantic import BaseModel, Field, model_validator
5
+ import math
5
6
 
6
7
  T = TypeVar("T")
7
8
 
8
9
 
9
10
  class PaginatedResponse(BaseModel, Generic[T]):
10
11
  """Pydantic model for paginated response
11
- >>> PaginatedResponse[ItemModel](data=items, total=total_items, page=1, size=10, prev=None, next=2)
12
+ >>> @router.get("", operation_id="getOrders")
13
+ >>> async def get_orders(
14
+ >>> params: Annotated[PaginationParams, Query()],
15
+ >>> ) -> PaginatedResponse[Order]:
16
+ >>> ...
17
+ >>> return PaginatedResponse[Order](
18
+ data=orders,
19
+ total=count,
20
+ page=params.page,
21
+ page_size=params.page_size,
22
+ prev=PaginatedResponse.get_prev_page(params.page),
23
+ next=PaginatedResponse.get_next_page(count, params.page_size, params.page),
24
+ last=PaginatedResponse.get_last_page(count, params.page_size),
25
+ )
12
26
  """
13
27
 
14
28
  data: list[T]
@@ -17,20 +31,40 @@ class PaginatedResponse(BaseModel, Generic[T]):
17
31
  page_size: int = Field(description="The number of items per page")
18
32
  prev: Optional[int] = Field(None, description="The previous page number")
19
33
  next: Optional[int] = Field(None, description="The next page number")
34
+ last: Optional[int] = Field(None, description="The last page number")
35
+
36
+ @staticmethod
37
+ def get_next_page(total: int, page_size: int, page: int) -> Optional[int]:
38
+ """Get the next page number"""
39
+ if page < math.ceil(total / page_size):
40
+ return page + 1
41
+ return None
42
+
43
+ @staticmethod
44
+ def get_prev_page(page: int) -> Optional[int]:
45
+ """Get the previous page number"""
46
+ if page > 1:
47
+ return page - 1
48
+ return None
49
+
50
+ @staticmethod
51
+ def get_last_page(total: int, page_size: int) -> int:
52
+ """Get the last page number"""
53
+ return max(1, math.ceil(total / page_size))
20
54
 
21
55
 
22
56
  class PaginationParams(BaseModel, Generic[T]):
23
57
  """Standard pagination parameters for usage in API endpoints. Check the [fastapi docs](https://fastapi.tiangolo.com/tutorial/query-param-models/?h=qu#query-parameters-with-a-pydantic-model) for usage examples.
24
- Can only be used isolated, not in combination with other parameters. If you need to combine with other parameters, use `FilterComboParams` or refer to this [workaround](https://github.com/fastapi/fastapi/discussions/13448#discussioncomment-12440374).
58
+ You should inherit from this class when adding additional parameters. You should use this class in combination with `PaginatedResponse` to return the paginated response.
25
59
  Usage:
26
60
  >>> @router.get("", operation_id="getOrders")
27
61
  >>> async def get_orders(
28
- >>> paginate: Annotated[PaginationParams[Order], Query()],
62
+ >>> params: Annotated[PaginationParams[Order], Query()],
29
63
  >>> ) -> PaginatedResponse[Order]:
30
64
  >>> ...
31
65
 
32
66
  The default size is 10 items per page and there is a `HeavyPaginationParams` class with 100 items per page. You can override this default:
33
- >>> class LightPaginationParams(PaginationParams[T]):
67
+ >>> class LightPaginationParams(PaginationParams):
34
68
  >>> page_size: int = Field(default=5, description="The number of items per page")
35
69
  """
36
70
 
@@ -50,11 +84,11 @@ class HeavyPaginationParams(PaginationParams[T]):
50
84
 
51
85
  class SortParams(BaseModel, Generic[T]):
52
86
  """Standard sort parameters for usage in API endpoints. Check the [fastapi docs](https://fastapi.tiangolo.com/tutorial/query-param-models/?h=qu#query-parameters-with-a-pydantic-model) for usage examples.
53
- Can only be used isolated, not in combination with other parameters. If you need to combine with other parameters, use `FilterComboParams` or refer to this [workaround](https://github.com/fastapi/fastapi/discussions/13448#discussioncomment-12440374).
87
+ You should inherit from this class when adding additional parameters.
54
88
  Usage:
55
89
  >>> @router.get("", operation_id="getOrders")
56
90
  >>> async def get_orders(
57
- >>> sort: Annotated[SortParams[Order], Query()],
91
+ >>> params: Annotated[SortParams[Order], Query()],
58
92
  >>> ) -> PaginatedResponse[Order]:
59
93
  >>> ...
60
94
  """
@@ -70,7 +104,7 @@ class SortParams(BaseModel, Generic[T]):
70
104
  args: tuple = self.__pydantic_generic_metadata__.get("args")
71
105
  if not args or not issubclass(args[0], BaseModel):
72
106
  raise TypeError(
73
- "PaginationParams must be used with a Pydantic BaseModel as a generic parameter"
107
+ "SortParams must be used with a Pydantic BaseModel as a generic parameter"
74
108
  )
75
109
  if self.sort_by:
76
110
  # check if the sort field is valid
@@ -83,24 +117,31 @@ class SortParams(BaseModel, Generic[T]):
83
117
  raise ValueError(
84
118
  f"Invalid order: '{self.sort_order}' — must be one of: ['asc', 'desc']"
85
119
  )
86
- if self.sort_order and self.sort_by is None or self.sort_by and self.sort_order is None:
120
+ if (
121
+ self.sort_order
122
+ and self.sort_by is None
123
+ or self.sort_by
124
+ and self.sort_order is None
125
+ ):
87
126
  raise ValueError("sort_order and sort_by must be provided together")
88
127
  return self
89
128
 
90
129
 
91
130
  class FilterParams(BaseModel, Generic[T]):
92
131
  """Standard filter parameters for usage in API endpoints. Check the [fastapi docs](https://fastapi.tiangolo.com/tutorial/query-param-models/?h=qu#query-parameters-with-a-pydantic-model) for usage examples.
93
- Can only be used isolated, not in combination with other parameters. If you need to combine with other parameters, use `FilterComboParams` or refer to this [workaround](https://github.com/fastapi/fastapi/discussions/13448#discussioncomment-12440374).
132
+ You should inherit from this class when adding additional parameters.
94
133
  Usage:
95
134
  >>> @router.get("", operation_id="getOrders")
96
135
  >>> async def get_orders(
97
- >>> filter: Annotated[FilterParams[Order], Query()],
136
+ >>> params: Annotated[FilterParams[Order], Query()],
98
137
  >>> ) -> PaginatedResponse[Order]:
99
138
  >>> ...
100
139
  """
101
140
 
102
141
  filter_by: Optional[str] = Field(None, description="The field to filter by")
103
- filter_value: Optional[Any] = Field(None, description="The value to filter with")
142
+ filter_value: Optional[str] = Field(None, description="The value to filter with")
143
+ # currently openapi-gen does not support typing.Any in combo with None, so we use str
144
+ # this is fine since the input is a string anyways from the request and the correct type is enforced by the model validator from the filter_by field
104
145
 
105
146
  @model_validator(mode="after")
106
147
  def validate_filter(self):
@@ -119,34 +160,104 @@ class FilterParams(BaseModel, Generic[T]):
119
160
  raise ValueError(
120
161
  f"Invalid field: '{self.filter_by}'. Must be one of: {list(model.model_fields)}"
121
162
  )
122
- self.filter_value = _enforce_field_type(model, self.filter_by, self.filter_value)
163
+ self.filter_value = _enforce_field_type(
164
+ model, self.filter_by, self.filter_value
165
+ )
123
166
  return self
124
167
 
125
168
 
126
- class FilterComboParams(PaginationParams[T], SortParams[T], FilterParams[T], ):
127
- """Combines pagination, filter, and sort parameters.
169
+ class SortFilterParams(SortParams[T], FilterParams[T]):
170
+ """Combines sort and filter parameters. Just a convenience class for when you need to combine sort and filter parameters.
171
+ You should inherit from this class when adding additional parameters.
128
172
  Usage:
129
173
  >>> @router.get("", operation_id="getOrders")
130
174
  >>> async def get_orders(
131
- >>> filter_combo: Annotated[FilterComboParams[Order], Query()],
175
+ >>> params: Annotated[SortFilterParams[Order], Query()],
132
176
  >>> ) -> PaginatedResponse[Order]:
133
177
  >>> ...
134
178
  """
135
179
 
136
- pass
180
+ @model_validator(mode="after")
181
+ def validate_sort_filter(self):
182
+ self.validate_sort()
183
+ self.validate_filter()
184
+ return self
137
185
 
138
186
 
139
- class HeavyFilterComboParams(HeavyPaginationParams[T], FilterParams[T], SortParams[T]):
140
- """Combines pagination, filter, and sort parameters.
187
+ class PageFilterParams(PaginationParams[T], FilterParams[T]):
188
+ """Combines pagination and filter parameters. Just a convenience class for when you need to combine pagination and filter parameters.
189
+ You should inherit from this class when adding additional parameters.
141
190
  Usage:
142
191
  >>> @router.get("", operation_id="getOrders")
143
192
  >>> async def get_orders(
144
- >>> filter_combo: Annotated[HeavyFilterComboParams[Order], Query()],
193
+ >>> params: Annotated[PageFilterParams[Order], Query()],
145
194
  >>> ) -> PaginatedResponse[Order]:
146
195
  >>> ...
147
196
  """
148
197
 
149
- pass
198
+ @model_validator(mode="after")
199
+ def validate_page_filter(self):
200
+ self.validate_filter()
201
+ return self
202
+
203
+
204
+ class PageSortParams(PaginationParams[T], SortParams[T]):
205
+ """Combines pagination and sort parameters. Just a convenience class for when you need to combine pagination and sort parameters.
206
+ You should inherit from this class when adding additional parameters.
207
+ Usage:
208
+ >>> @router.get("", operation_id="getOrders")
209
+ >>> async def get_orders(
210
+ >>> params: Annotated[PageSortParams[Order], Query()],
211
+ >>> ) -> PaginatedResponse[Order]:
212
+ >>> ...
213
+ """
214
+
215
+ @model_validator(mode="after")
216
+ def validate_page_sort(self):
217
+ self.validate_sort()
218
+ return self
219
+
220
+
221
+ class PageSortFilterParams(
222
+ PaginationParams[T],
223
+ SortParams[T],
224
+ FilterParams[T],
225
+ ):
226
+ """Combines pagination, filter, and sort parameters. Just a convenience class for when you need to combine pagination, filter, and sort parameters.
227
+ You should inherit from this class when adding additional parameters.
228
+ Usage:
229
+ >>> @router.get("", operation_id="getOrders")
230
+ >>> async def get_orders(
231
+ >>> params: Annotated[PageSortFilterParams[Order], Query()],
232
+ >>> ) -> PaginatedResponse[Order]:
233
+ >>> ...
234
+ """
235
+
236
+ @model_validator(mode="after")
237
+ def validate_filter_combo(self):
238
+ self.validate_filter()
239
+ self.validate_sort()
240
+ return self
241
+
242
+
243
+ class HeavyPageSortFilterParams(
244
+ HeavyPaginationParams[T], FilterParams[T], SortParams[T]
245
+ ):
246
+ """Combines heavy pagination, filter, and sort parameters. Just a convenience class for when you need to combine heavy pagination, filter, and sort parameters.
247
+ You should inherit from this class when adding additional parameters.
248
+ Usage:
249
+ >>> @router.get("", operation_id="getOrders")
250
+ >>> async def get_orders(
251
+ >>> params: Annotated[HeavyPageSortFilterParams[Order], Query()],
252
+ >>> ) -> PaginatedResponse[Order]:
253
+ >>> ...
254
+ """
255
+
256
+ @model_validator(mode="after")
257
+ def validate_heavy_page_sort_filter(self):
258
+ self.validate_filter()
259
+ self.validate_sort()
260
+ return self
150
261
 
151
262
 
152
263
  def _enforce_field_type(model: Type[BaseModel], field_name: str, value: Any) -> Any:
@@ -168,5 +279,7 @@ def _enforce_field_type(model: Type[BaseModel], field_name: str, value: Any) ->
168
279
 
169
280
  try:
170
281
  return expected_type(value)
171
- except Exception as e:
172
- raise ValueError(f"Expected {expected_type} for field {field_name}, got {type(value)}")
282
+ except Exception:
283
+ raise ValueError(
284
+ f"Expected {expected_type} for field {field_name}, got {type(value)}"
285
+ )
@@ -1,11 +1,10 @@
1
1
  """General utility functions and helper methods used across the codebase."""
2
2
 
3
3
  from datetime import datetime
4
- from typing import Any, Type, Union
4
+ from typing import Any, Union
5
5
  from decimal import Decimal
6
6
  import string
7
7
  import random
8
- from pydantic import BaseModel
9
8
  import typing_extensions
10
9
  import warnings
11
10
 
@@ -0,0 +1,6 @@
1
+ from crypticorn.dex.client import *
2
+ from crypticorn.dex.main import DexClient
3
+
4
+ __all__ = [
5
+ "DexClient",
6
+ ]
@@ -0,0 +1,49 @@
1
+ # coding: utf-8
2
+
3
+ # flake8: noqa
4
+
5
+ """
6
+ DEX AI API
7
+
8
+ API for DEX AI
9
+
10
+ The version of the OpenAPI document: 1.0.0
11
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
12
+
13
+ Do not edit the class manually.
14
+ """ # noqa: E501
15
+
16
+
17
+ __version__ = "1.0.0"
18
+
19
+ # import apis into sdk package
20
+ from crypticorn.dex.client.api.admin_api import AdminApi
21
+ from crypticorn.dex.client.api.signals_api import SignalsApi
22
+ from crypticorn.dex.client.api.status_api import StatusApi
23
+
24
+ # import ApiClient
25
+ from crypticorn.dex.client.api_response import ApiResponse
26
+ from crypticorn.dex.client.api_client import ApiClient
27
+ from crypticorn.dex.client.configuration import Configuration
28
+ from crypticorn.dex.client.exceptions import OpenApiException
29
+ from crypticorn.dex.client.exceptions import ApiTypeError
30
+ from crypticorn.dex.client.exceptions import ApiValueError
31
+ from crypticorn.dex.client.exceptions import ApiKeyError
32
+ from crypticorn.dex.client.exceptions import ApiAttributeError
33
+ from crypticorn.dex.client.exceptions import ApiException
34
+
35
+ # import models into sdk package
36
+ from crypticorn.dex.client.models.api_error_identifier import ApiErrorIdentifier
37
+ from crypticorn.dex.client.models.api_error_level import ApiErrorLevel
38
+ from crypticorn.dex.client.models.api_error_type import ApiErrorType
39
+ from crypticorn.dex.client.models.exception_detail import ExceptionDetail
40
+ from crypticorn.dex.client.models.log_level import LogLevel
41
+ from crypticorn.dex.client.models.paginated_response_signal_with_token import (
42
+ PaginatedResponseSignalWithToken,
43
+ )
44
+ from crypticorn.dex.client.models.risk import Risk
45
+ from crypticorn.dex.client.models.signal_overview_stats import SignalOverviewStats
46
+ from crypticorn.dex.client.models.signal_volume import SignalVolume
47
+ from crypticorn.dex.client.models.signal_with_token import SignalWithToken
48
+ from crypticorn.dex.client.models.token_data import TokenData
49
+ from crypticorn.dex.client.models.token_detail import TokenDetail
@@ -0,0 +1,6 @@
1
+ # flake8: noqa
2
+
3
+ # import apis into api package
4
+ from crypticorn.dex.client.api.admin_api import AdminApi
5
+ from crypticorn.dex.client.api.signals_api import SignalsApi
6
+ from crypticorn.dex.client.api.status_api import StatusApi