crypticorn 2.14.0__tar.gz → 2.15.0__tar.gz

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 (308) hide show
  1. {crypticorn-2.14.0 → crypticorn-2.15.0}/CHANGELOG.md +8 -0
  2. {crypticorn-2.14.0/crypticorn.egg-info → crypticorn-2.15.0}/PKG-INFO +1 -1
  3. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/auth.py +1 -6
  4. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/client.py +4 -2
  5. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/enums.py +18 -1
  6. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/router/status_router.py +1 -1
  7. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/warnings.py +6 -0
  8. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/configuration.py +2 -4
  9. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/api_error_identifier.py +7 -7
  10. {crypticorn-2.14.0 → crypticorn-2.15.0/crypticorn.egg-info}/PKG-INFO +1 -1
  11. {crypticorn-2.14.0 → crypticorn-2.15.0}/pyproject.toml +1 -1
  12. {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_custom_session.py +9 -5
  13. {crypticorn-2.14.0 → crypticorn-2.15.0}/LICENSE +0 -0
  14. {crypticorn-2.14.0 → crypticorn-2.15.0}/MANIFEST.in +0 -0
  15. {crypticorn-2.14.0 → crypticorn-2.15.0}/README.md +0 -0
  16. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/__init__.py +0 -0
  17. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/__init__.py +0 -0
  18. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/__init__.py +0 -0
  19. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/__init__.py +0 -0
  20. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/admin_api.py +0 -0
  21. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/auth_api.py +0 -0
  22. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/service_api.py +0 -0
  23. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/user_api.py +0 -0
  24. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/wallet_api.py +0 -0
  25. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api_client.py +0 -0
  26. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api_response.py +0 -0
  27. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/configuration.py +0 -0
  28. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/exceptions.py +0 -0
  29. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/__init__.py +0 -0
  30. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/add_wallet200_response.py +0 -0
  31. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/add_wallet_request.py +0 -0
  32. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user200_response.py +0 -0
  33. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user200_response_auth.py +0 -0
  34. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user_request.py +0 -0
  35. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_api_key200_response.py +0 -0
  36. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_api_key_request.py +0 -0
  37. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_user_request.py +0 -0
  38. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/get_api_keys200_response_inner.py +0 -0
  39. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response.py +0 -0
  40. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner.py +0 -0
  41. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +0 -0
  42. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +0 -0
  43. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +0 -0
  44. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_data_inner.py +0 -0
  45. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_user_value.py +0 -0
  46. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/logout_default_response.py +0 -0
  47. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/logout_default_response_issues_inner.py +0 -0
  48. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/oauth_callback200_response.py +0 -0
  49. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/oauth_callback200_response_user.py +0 -0
  50. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/refresh_token_info200_response.py +0 -0
  51. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +0 -0
  52. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/resend_verification_email_request.py +0 -0
  53. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/revoke_user_tokens_request.py +0 -0
  54. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/rotate_tokens200_response.py +0 -0
  55. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/token_info200_response.py +0 -0
  56. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/unlink_wallet_request.py +0 -0
  57. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/update_user_request.py +0 -0
  58. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_by_username200_response.py +0 -0
  59. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_reset_password_request.py +0 -0
  60. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_set_password_request.py +0 -0
  61. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify200_response.py +0 -0
  62. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email200_response.py +0 -0
  63. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email200_response_auth.py +0 -0
  64. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email200_response_auth_auth.py +0 -0
  65. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email_request.py +0 -0
  66. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_wallet_request.py +0 -0
  67. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/wallet_verified200_response.py +0 -0
  68. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/whoami200_response.py +0 -0
  69. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/py.typed +0 -0
  70. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/rest.py +0 -0
  71. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/main.py +0 -0
  72. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/__init__.py +0 -0
  73. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/__main__.py +0 -0
  74. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/init.py +0 -0
  75. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/Dockerfile +0 -0
  76. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/__init__.py +0 -0
  77. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/dependabot.yml +0 -0
  78. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/merge-env.sh +0 -0
  79. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/ruff.yml +0 -0
  80. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/version.py +0 -0
  81. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/__init__.py +0 -0
  82. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/ansi_colors.py +0 -0
  83. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/auth.py +0 -0
  84. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/decorators.py +0 -0
  85. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/errors.py +0 -0
  86. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/exceptions.py +0 -0
  87. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/logging.py +0 -0
  88. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/middleware.py +0 -0
  89. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/mixins.py +0 -0
  90. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/openapi.py +0 -0
  91. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/pagination.py +0 -0
  92. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/router/admin_router.py +0 -0
  93. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/scopes.py +0 -0
  94. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/urls.py +0 -0
  95. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/utils.py +0 -0
  96. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/__init__.py +0 -0
  97. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/__init__.py +0 -0
  98. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/__init__.py +0 -0
  99. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/admin_api.py +0 -0
  100. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/data_api.py +0 -0
  101. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/models_api.py +0 -0
  102. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/status_api.py +0 -0
  103. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api_client.py +0 -0
  104. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api_response.py +0 -0
  105. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/configuration.py +0 -0
  106. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/exceptions.py +0 -0
  107. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/__init__.py +0 -0
  108. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/api_error_identifier.py +0 -0
  109. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/api_error_level.py +0 -0
  110. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/api_error_type.py +0 -0
  111. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/coin_info.py +0 -0
  112. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/coins.py +0 -0
  113. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_download_response.py +0 -0
  114. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_info.py +0 -0
  115. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_options.py +0 -0
  116. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_version.py +0 -0
  117. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_version_info.py +0 -0
  118. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/download_links.py +0 -0
  119. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/evaluation.py +0 -0
  120. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/evaluation_response.py +0 -0
  121. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/exception_detail.py +0 -0
  122. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/feature_size.py +0 -0
  123. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/log_level.py +0 -0
  124. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_create.py +0 -0
  125. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_read.py +0 -0
  126. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_status.py +0 -0
  127. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_update.py +0 -0
  128. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/target.py +0 -0
  129. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/target_info.py +0 -0
  130. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/target_type.py +0 -0
  131. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/py.typed +0 -0
  132. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/rest.py +0 -0
  133. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/main.py +0 -0
  134. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/utils.py +0 -0
  135. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/__init__.py +0 -0
  136. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/__init__.py +0 -0
  137. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/__init__.py +0 -0
  138. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/admin_api.py +0 -0
  139. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/change_in_timeframe_api.py +0 -0
  140. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/funding_rates_api.py +0 -0
  141. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/ohlcv_data_api.py +0 -0
  142. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/status_api.py +0 -0
  143. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/symbols_api.py +0 -0
  144. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/udf_api.py +0 -0
  145. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api_client.py +0 -0
  146. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api_response.py +0 -0
  147. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/configuration.py +0 -0
  148. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/exceptions.py +0 -0
  149. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/__init__.py +0 -0
  150. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/api_error_identifier.py +0 -0
  151. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/api_error_level.py +0 -0
  152. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/api_error_type.py +0 -0
  153. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/change_in_timeframe.py +0 -0
  154. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/exception_detail.py +0 -0
  155. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/funding_rate.py +0 -0
  156. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/funding_rate_response.py +0 -0
  157. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/internal_exchange.py +0 -0
  158. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/log_level.py +0 -0
  159. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/market_type.py +0 -0
  160. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/ohlcv.py +0 -0
  161. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/resolution.py +0 -0
  162. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/search_symbol.py +0 -0
  163. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/sort_direction.py +0 -0
  164. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/symbol_group.py +0 -0
  165. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/symbol_info.py +0 -0
  166. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/symbol_type.py +0 -0
  167. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/timeframe.py +0 -0
  168. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/udf_config.py +0 -0
  169. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/py.typed +0 -0
  170. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/rest.py +0 -0
  171. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/main.py +0 -0
  172. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/__init__.py +0 -0
  173. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/__init__.py +0 -0
  174. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/__init__.py +0 -0
  175. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/admin_api.py +0 -0
  176. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/exchanges_api.py +0 -0
  177. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/indicators_api.py +0 -0
  178. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/logs_api.py +0 -0
  179. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/marketcap_api.py +0 -0
  180. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/markets_api.py +0 -0
  181. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/quote_currencies_api.py +0 -0
  182. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/status_api.py +0 -0
  183. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/tokens_api.py +0 -0
  184. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api_client.py +0 -0
  185. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api_response.py +0 -0
  186. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/exceptions.py +0 -0
  187. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/__init__.py +0 -0
  188. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/api_error_level.py +0 -0
  189. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/api_error_type.py +0 -0
  190. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/exception_detail.py +0 -0
  191. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/exchange_availability.py +0 -0
  192. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/exchange_mapping.py +0 -0
  193. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/internal_exchange.py +0 -0
  194. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/log_level.py +0 -0
  195. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/market_type.py +0 -0
  196. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/marketcap_ranking.py +0 -0
  197. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/marketcap_symbol_ranking.py +0 -0
  198. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/ohlcv.py +0 -0
  199. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/severity.py +0 -0
  200. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/time_interval.py +0 -0
  201. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/trading_status.py +0 -0
  202. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/py.typed +0 -0
  203. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/rest.py +0 -0
  204. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/main.py +0 -0
  205. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/__init__.py +0 -0
  206. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/__init__.py +0 -0
  207. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/__init__.py +0 -0
  208. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/admin_api.py +0 -0
  209. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/now_payments_api.py +0 -0
  210. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/payments_api.py +0 -0
  211. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/products_api.py +0 -0
  212. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/status_api.py +0 -0
  213. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api_client.py +0 -0
  214. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api_response.py +0 -0
  215. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/configuration.py +0 -0
  216. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/exceptions.py +0 -0
  217. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/__init__.py +0 -0
  218. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/api_error_identifier.py +0 -0
  219. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/api_error_level.py +0 -0
  220. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/api_error_type.py +0 -0
  221. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/exception_detail.py +0 -0
  222. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/log_level.py +0 -0
  223. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/now_create_invoice_req.py +0 -0
  224. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/now_create_invoice_res.py +0 -0
  225. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/payment.py +0 -0
  226. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/payment_status.py +0 -0
  227. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/product.py +0 -0
  228. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/product_create.py +0 -0
  229. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/product_update.py +0 -0
  230. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/provider.py +0 -0
  231. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/scope.py +0 -0
  232. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/subscription.py +0 -0
  233. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/py.typed +0 -0
  234. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/rest.py +0 -0
  235. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/main.py +0 -0
  236. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/__init__.py +0 -0
  237. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/__init__.py +0 -0
  238. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/__init__.py +0 -0
  239. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/admin_api.py +0 -0
  240. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/api_keys_api.py +0 -0
  241. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/bots_api.py +0 -0
  242. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/exchanges_api.py +0 -0
  243. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/futures_trading_panel_api.py +0 -0
  244. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/notifications_api.py +0 -0
  245. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/orders_api.py +0 -0
  246. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/status_api.py +0 -0
  247. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/strategies_api.py +0 -0
  248. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/trading_actions_api.py +0 -0
  249. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api_client.py +0 -0
  250. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api_response.py +0 -0
  251. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/configuration.py +0 -0
  252. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/exceptions.py +0 -0
  253. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/__init__.py +0 -0
  254. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/api_error_identifier.py +0 -0
  255. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/api_error_level.py +0 -0
  256. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/api_error_type.py +0 -0
  257. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot.py +0 -0
  258. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot_create.py +0 -0
  259. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot_status.py +0 -0
  260. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot_update.py +0 -0
  261. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exception_detail.py +0 -0
  262. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange.py +0 -0
  263. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange_key.py +0 -0
  264. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange_key_create.py +0 -0
  265. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange_key_update.py +0 -0
  266. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/execution_ids.py +0 -0
  267. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/futures_balance.py +0 -0
  268. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/futures_trading_action.py +0 -0
  269. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/futures_trading_action_create.py +0 -0
  270. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/log_level.py +0 -0
  271. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/margin_mode.py +0 -0
  272. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/market_type.py +0 -0
  273. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/notification.py +0 -0
  274. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/notification_create.py +0 -0
  275. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/notification_update.py +0 -0
  276. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/order.py +0 -0
  277. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/order_status.py +0 -0
  278. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/post_futures_action.py +0 -0
  279. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/spot_trading_action_create.py +0 -0
  280. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy.py +0 -0
  281. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy_create.py +0 -0
  282. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy_exchange_info.py +0 -0
  283. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy_update.py +0 -0
  284. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/tpsl.py +0 -0
  285. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/tpsl_create.py +0 -0
  286. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/trading_action_type.py +0 -0
  287. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/py.typed +0 -0
  288. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/rest.py +0 -0
  289. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/main.py +0 -0
  290. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/SOURCES.txt +0 -0
  291. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/dependency_links.txt +0 -0
  292. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/entry_points.txt +0 -0
  293. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/requires.txt +0 -0
  294. {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/top_level.txt +0 -0
  295. {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/dev.txt +0 -0
  296. {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/extra.txt +0 -0
  297. {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/main.txt +0 -0
  298. {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/test.txt +0 -0
  299. {crypticorn-2.14.0 → crypticorn-2.15.0}/setup.cfg +0 -0
  300. {crypticorn-2.14.0 → crypticorn-2.15.0}/static/favicon.svg +0 -0
  301. {crypticorn-2.14.0 → crypticorn-2.15.0}/static/logo.svg +0 -0
  302. {crypticorn-2.14.0 → crypticorn-2.15.0}/static/pip-structure.drawio +0 -0
  303. {crypticorn-2.14.0 → crypticorn-2.15.0}/static/pip-structure.svg +0 -0
  304. {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_auth_client.py +0 -0
  305. {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_config.py +0 -0
  306. {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_enums.py +0 -0
  307. {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_errors.py +0 -0
  308. {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_pagination.py +0 -0
@@ -1,6 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v2.15.0 (2025-05-27)
5
+
6
+ ### Features
7
+
8
+ - Deprecate `InternalExchange` and move enum members to `Exchange`
9
+ ([`5a4cea7`](https://github.com/crypticorn-ai/api-client/commit/5a4cea7695f862a2bc66bf921749f973117452cb))
10
+
11
+
4
12
  ## v2.14.0 (2025-05-26)
5
13
 
6
14
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.14.0
3
+ Version: 2.15.0
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License-Expression: MIT
@@ -14,14 +14,9 @@ dotenv.load_dotenv()
14
14
 
15
15
  logger = logging.getLogger(__name__)
16
16
 
17
- DOCKER_ENV = os.getenv("IS_DOCKER")
17
+ DOCKER_ENV = os.getenv("IS_DOCKER", "0")
18
18
  API_ENV = os.getenv("API_ENV")
19
19
 
20
- if not DOCKER_ENV:
21
- raise ValueError(
22
- "IS_DOCKER is not set. Please set it to '0' in .env and '1' in the docker-compose.yml file."
23
- )
24
-
25
20
  if not API_ENV:
26
21
  raise ValueError(
27
22
  "API_ENV is not set. Please set it to 'prod', 'dev' or 'local' in .env (of type ApiEnv)."
@@ -37,7 +37,7 @@ class ApiClient:
37
37
  """The version of the client."""
38
38
 
39
39
  self._http_client = http_client
40
- self._owns_http_client = http_client is None # whether we own the http client
40
+ self._owns_http_client = http_client is None # whether we own the http client
41
41
  self._service_classes: dict[Service, type[SubClient]] = {
42
42
  Service.HIVE: HiveClient,
43
43
  Service.TRADE: TradeClient,
@@ -116,7 +116,9 @@ class ApiClient:
116
116
  headers={"User-Agent": f"crypticorn/python/{self.version}"},
117
117
  )
118
118
  for service in self._services.values():
119
- if hasattr(service, 'base_client') and hasattr(service.base_client, 'rest_client'):
119
+ if hasattr(service, "base_client") and hasattr(
120
+ service.base_client, "rest_client"
121
+ ):
120
122
  service.base_client.rest_client.pool_manager = self._http_client
121
123
 
122
124
  def _get_default_config(self, service, version=None):
@@ -5,15 +5,24 @@ try:
5
5
  except ImportError:
6
6
  from strenum import StrEnum
7
7
 
8
+ from enum import Enum
9
+ import warnings
10
+ import typing_extensions
8
11
  from crypticorn.common.mixins import ValidateEnumMixin
12
+ from crypticorn.common.warnings import CrypticornDeprecatedSince215
9
13
 
10
14
 
11
15
  class Exchange(ValidateEnumMixin, StrEnum):
12
- """Supported exchanges for trading"""
16
+ """All exchanges used in the crypticorn ecosystem. Refer to the APIs for support for a specific usecase (data, trading, etc.)."""
13
17
 
14
18
  KUCOIN = "kucoin"
15
19
  BINGX = "bingx"
20
+ BINANCE = "binance"
21
+ BYBIT = "bybit"
16
22
  HYPERLIQUID = "hyperliquid"
23
+ BITGET = "bitget"
24
+ GATEIO = "gateio"
25
+ BITSTAMP = "bitstamp"
17
26
 
18
27
 
19
28
  class InternalExchange(ValidateEnumMixin, StrEnum):
@@ -26,6 +35,14 @@ class InternalExchange(ValidateEnumMixin, StrEnum):
26
35
  HYPERLIQUID = "hyperliquid"
27
36
  BITGET = "bitget"
28
37
 
38
+ @classmethod
39
+ def __getattr__(cls, name):
40
+ warnings.warn(
41
+ "The `InternalExchange` enum is deprecated; use `Exchange` instead.",
42
+ category=CrypticornDeprecatedSince215,
43
+ )
44
+ return super().__getattr__(name)
45
+
29
46
 
30
47
  class MarketType(ValidateEnumMixin, StrEnum):
31
48
  """
@@ -1,7 +1,7 @@
1
1
  """
2
2
  This module contains the status router for the API.
3
3
  It provides endpoints for checking the status of the API and get the server's time.
4
- SHOULD ALLOW ACCESS TO THIS ROUTER WITHOUT.
4
+ SHOULD ALLOW ACCESS TO THIS ROUTER WITHOUT AUTH.
5
5
  >>> app.include_router(status_router)
6
6
  """
7
7
 
@@ -55,6 +55,12 @@ class CrypticornDeprecatedSince28(CrypticornDeprecationWarning):
55
55
  def __init__(self, message: str, *args: object) -> None:
56
56
  super().__init__(message, *args, since=(2, 8), expected_removal=(3, 0))
57
57
 
58
+ class CrypticornDeprecatedSince215(CrypticornDeprecationWarning):
59
+ """A specific `CrypticornDeprecationWarning` subclass defining functionality deprecated since Crypticorn 2.15."""
60
+
61
+ def __init__(self, message: str, *args: object) -> None:
62
+ super().__init__(message, *args, since=(2, 15), expected_removal=(3, 0))
63
+
58
64
 
59
65
  class CrypticornExperimentalWarning(Warning):
60
66
  """A Crypticorn specific experimental functionality warning.
@@ -215,9 +215,7 @@ class Configuration:
215
215
  debug: Optional[bool] = None,
216
216
  ) -> None:
217
217
  """Constructor"""
218
- self._base_path = (
219
- "https://api.crypticorn.dev/v1/metrics" if host is None else host
220
- )
218
+ self._base_path = "http://localhost/v1/metrics" if host is None else host
221
219
  """Default Base url
222
220
  """
223
221
  self.server_index = 0 if server_index is None and host is None else server_index
@@ -559,7 +557,7 @@ class Configuration:
559
557
  """
560
558
  return [
561
559
  {
562
- "url": "https://api.crypticorn.dev/v1/metrics",
560
+ "url": "http://localhost/v1/metrics",
563
561
  "description": "No description provided",
564
562
  }
565
563
  ]
@@ -28,15 +28,17 @@ class ApiErrorIdentifier(str, Enum):
28
28
  """
29
29
  ALLOCATION_BELOW_CURRENT_EXPOSURE = "allocation_below_current_exposure"
30
30
  ALLOCATION_BELOW_MIN_AMOUNT = "allocation_below_min_amount"
31
+ ALLOCATION_LIMIT_EXCEEDED = "allocation_limit_exceeded"
31
32
  BLACK_SWAN = "black_swan"
32
33
  BOT_ALREADY_DELETED = "bot_already_deleted"
33
- BOT_DISABLED = "bot_disabled"
34
34
  BOT_STOPPING_COMPLETED = "bot_stopping_completed"
35
35
  BOT_STOPPING_STARTED = "bot_stopping_started"
36
36
  CANCELLED_OPEN_ORDER = "cancelled_open_order"
37
37
  CLIENT_ORDER_ID_ALREADY_EXISTS = "client_order_id_already_exists"
38
38
  INVALID_CONTENT_TYPE = "invalid_content_type"
39
39
  DELETE_BOT_ERROR = "delete_bot_error"
40
+ EXCHANGE_HTTP_REQUEST_ERROR = "exchange_http_request_error"
41
+ EXCHANGE_INVALID_PARAMETER = "exchange_invalid_parameter"
40
42
  EXCHANGE_INVALID_SIGNATURE = "exchange_invalid_signature"
41
43
  EXCHANGE_INVALID_TIMESTAMP = "exchange_invalid_timestamp"
42
44
  EXCHANGE_IP_ADDRESS_IS_NOT_AUTHORIZED = "exchange_ip_address_is_not_authorized"
@@ -56,10 +58,9 @@ class ApiErrorIdentifier(str, Enum):
56
58
  EXCHANGE_USER_ACCOUNT_IS_FROZEN = "exchange_user_account_is_frozen"
57
59
  API_KEY_EXPIRED = "api_key_expired"
58
60
  BEARER_TOKEN_EXPIRED = "bearer_token_expired"
59
- OPEN_ORDER_EXPIRED = "open_order_expired"
61
+ FAILED_OPEN_ORDER = "failed_open_order"
60
62
  FORBIDDEN = "forbidden"
61
63
  HEDGE_MODE_NOT_ACTIVE = "hedge_mode_not_active"
62
- HTTP_REQUEST_ERROR = "http_request_error"
63
64
  INSUFFICIENT_BALANCE = "insufficient_balance"
64
65
  INSUFFICIENT_MARGIN = "insufficient_margin"
65
66
  INSUFFICIENT_SCOPES = "insufficient_scopes"
@@ -68,15 +69,15 @@ class ApiErrorIdentifier(str, Enum):
68
69
  INVALID_DATA = "invalid_data"
69
70
  INVALID_DATA_RESPONSE = "invalid_data_response"
70
71
  INVALID_EXCHANGE_KEY = "invalid_exchange_key"
71
- INVALID_MARGIN_MODE = "invalid_margin_mode"
72
72
  INVALID_MODEL_NAME = "invalid_model_name"
73
- INVALID_PARAMETER_PROVIDED = "exchange_invalid_parameter"
74
73
  LEVERAGE_LIMIT_EXCEEDED = "leverage_limit_exceeded"
75
74
  ORDER_VIOLATES_LIQUIDATION_PRICE_CONSTRAINTS = (
76
75
  "order_violates_liquidation_price_constraints"
77
76
  )
78
77
  MARGIN_MODE_CLASH = "margin_mode_clash"
79
78
  NAME_NOT_UNIQUE = "name_not_unique"
79
+ NO_API_KEY = "no_api_key"
80
+ NO_BEARER = "no_bearer"
80
81
  NO_CREDENTIALS = "no_credentials"
81
82
  NOW_API_DOWN = "now_api_down"
82
83
  OBJECT_ALREADY_EXISTS = "object_already_exists"
@@ -102,14 +103,13 @@ class ApiErrorIdentifier(str, Enum):
102
103
  RISK_LIMIT_EXCEEDED = "risk_limit_exceeded"
103
104
  RPC_TIMEOUT = "rpc_timeout"
104
105
  SYSTEM_SETTLEMENT_IN_PROCESS = "system_settlement_in_process"
105
- STRATEGY_ALREADY_EXISTS = "strategy_already_exists"
106
106
  STRATEGY_DISABLED = "strategy_disabled"
107
107
  STRATEGY_LEVERAGE_MISMATCH = "strategy_leverage_mismatch"
108
108
  STRATEGY_NOT_SUPPORTING_EXCHANGE = "strategy_not_supporting_exchange"
109
109
  SUCCESS = "success"
110
110
  SYMBOL_DOES_NOT_EXIST = "symbol_does_not_exist"
111
111
  TRADING_ACTION_EXPIRED = "trading_action_expired"
112
- TRADING_ACTION_SKIPPED_BOT_STOPPING = "TRADING_ACTION_SKIPPED_BOT_STOPPING"
112
+ TRADING_ACTION_SKIPPED_BOT_STOPPING = "trading_action_skipped_bot_stopping"
113
113
  TRADING_HAS_BEEN_LOCKED = "trading_has_been_locked"
114
114
  TRADING_IS_SUSPENDED = "trading_is_suspended"
115
115
  UNKNOWN_ERROR_OCCURRED = "unknown_error_occurred"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.14.0
3
+ Version: 2.15.0
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License-Expression: MIT
@@ -5,7 +5,7 @@ readme = "README.md"
5
5
  license = "MIT"
6
6
  requires-python = ">=3.9"
7
7
  authors = [{name = "Crypticorn", email = "timon@crypticorn.com"}]
8
- version = "2.14.0"
8
+ version = "2.15.0"
9
9
  keywords = ["machine learning", "data science", "crypto", "modelling"]
10
10
  dynamic = ["dependencies", "optional-dependencies"]
11
11
 
@@ -57,7 +57,8 @@ async def test_close_owned_http_client():
57
57
  session = client._http_client
58
58
 
59
59
  await client.close()
60
- assert session.closed # session should be closed since we own it
60
+ assert session.closed # session should be closed since we own it
61
+
61
62
 
62
63
  @pytest.mark.asyncio
63
64
  async def test_unclosed_owned_session_warns():
@@ -77,6 +78,7 @@ async def test_unclosed_owned_session_warns():
77
78
  ]
78
79
  assert unclosed_warnings, "Expected unclosed client session warning"
79
80
 
81
+
80
82
  @pytest.mark.asyncio
81
83
  async def test_custom_session_not_closed_by_client():
82
84
  with warnings.catch_warnings(record=True) as w:
@@ -95,12 +97,14 @@ async def test_custom_session_not_closed_by_client():
95
97
  await asyncio.sleep(0.1)
96
98
 
97
99
  unclosed_warnings = [
98
- warn for warn in w
99
- if "Unclosed client session" in str(warn.message) or
100
- "Unclosed connector" in str(warn.message)
100
+ warn
101
+ for warn in w
102
+ if "Unclosed client session" in str(warn.message)
103
+ or "Unclosed connector" in str(warn.message)
101
104
  ]
102
105
  assert unclosed_warnings, "Expected unclosed client session warning"
103
106
 
107
+
104
108
  @pytest.mark.asyncio
105
109
  async def test_context_manager_usage():
106
110
  async with ApiClient() as client:
@@ -110,4 +114,4 @@ async def test_context_manager_usage():
110
114
  assert subclient.base_client.rest_client.pool_manager is client._http_client
111
115
 
112
116
  # Confirm session is closed after context manager
113
- assert client._http_client is None
117
+ assert client._http_client is None
File without changes
File without changes
File without changes