crypticorn 2.8.0rc6__tar.gz → 2.8.0rc8__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 (261) hide show
  1. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/CHANGELOG.md +16 -0
  2. {crypticorn-2.8.0rc6/crypticorn.egg-info → crypticorn-2.8.0rc8}/PKG-INFO +3 -3
  3. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/README.md +2 -2
  4. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/__init__.py +1 -1
  5. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/client.py +1 -1
  6. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/exceptions.py +4 -4
  7. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/logging.py +13 -4
  8. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/middleware.py +2 -3
  9. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/mixins.py +3 -2
  10. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/__init__.py +4 -4
  11. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/api/admin_api.py +5 -6
  12. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/__init__.py +4 -4
  13. crypticorn-2.8.0rc8/crypticorn/hive/client/models/api_error_identifier.py +115 -0
  14. crypticorn-2.8.0rc8/crypticorn/hive/client/models/api_error_level.py +37 -0
  15. crypticorn-2.8.0rc8/crypticorn/hive/client/models/api_error_type.py +37 -0
  16. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/data_info.py +27 -5
  17. crypticorn-2.8.0rc8/crypticorn/hive/client/models/data_options.py +92 -0
  18. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/exception_detail.py +6 -3
  19. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/model.py +3 -3
  20. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/main.py +20 -2
  21. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/main.py +1 -1
  22. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8/crypticorn.egg-info}/PKG-INFO +3 -3
  23. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn.egg-info/SOURCES.txt +4 -2
  24. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/pyproject.toml +1 -1
  25. crypticorn-2.8.0rc6/crypticorn/hive/client/models/data_value_value_value_inner.py +0 -154
  26. crypticorn-2.8.0rc6/crypticorn/hive/client/models/response_getuptime.py +0 -159
  27. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/MANIFEST.in +0 -0
  28. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/__init__.py +0 -0
  29. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/__init__.py +0 -0
  30. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api/__init__.py +0 -0
  31. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api/admin_api.py +0 -0
  32. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api/auth_api.py +0 -0
  33. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api/service_api.py +0 -0
  34. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api/user_api.py +0 -0
  35. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api/wallet_api.py +0 -0
  36. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api_client.py +0 -0
  37. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/api_response.py +0 -0
  38. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/configuration.py +0 -0
  39. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/exceptions.py +0 -0
  40. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/__init__.py +0 -0
  41. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/add_wallet200_response.py +0 -0
  42. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/add_wallet_request.py +0 -0
  43. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/authorize_user200_response.py +0 -0
  44. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/authorize_user200_response_auth.py +0 -0
  45. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/authorize_user_request.py +0 -0
  46. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/create_api_key200_response.py +0 -0
  47. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/create_api_key_request.py +0 -0
  48. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/create_user_request.py +0 -0
  49. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/get_api_keys200_response_inner.py +0 -0
  50. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/list_wallets200_response.py +0 -0
  51. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner.py +0 -0
  52. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +0 -0
  53. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +0 -0
  54. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +0 -0
  55. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/list_wallets200_response_data_inner.py +0 -0
  56. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/list_wallets200_response_user_value.py +0 -0
  57. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/logout_default_response.py +0 -0
  58. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/logout_default_response_issues_inner.py +0 -0
  59. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/oauth_callback200_response.py +0 -0
  60. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/oauth_callback200_response_user.py +0 -0
  61. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/refresh_token_info200_response.py +0 -0
  62. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +0 -0
  63. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/resend_verification_email_request.py +0 -0
  64. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/revoke_user_tokens_request.py +0 -0
  65. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/rotate_tokens200_response.py +0 -0
  66. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/token_info200_response.py +0 -0
  67. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/unlink_wallet_request.py +0 -0
  68. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/update_user_request.py +0 -0
  69. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/user_by_username200_response.py +0 -0
  70. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/user_reset_password_request.py +0 -0
  71. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/user_set_password_request.py +0 -0
  72. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/verify200_response.py +0 -0
  73. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/verify_email200_response.py +0 -0
  74. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/verify_email200_response_auth.py +0 -0
  75. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/verify_email200_response_auth_auth.py +0 -0
  76. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/verify_email_request.py +0 -0
  77. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/verify_wallet_request.py +0 -0
  78. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/wallet_verified200_response.py +0 -0
  79. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/models/whoami200_response.py +0 -0
  80. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/py.typed +0 -0
  81. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/client/rest.py +0 -0
  82. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/auth/main.py +0 -0
  83. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/__init__.py +0 -0
  84. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/__main__.py +0 -0
  85. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/init.py +0 -0
  86. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/templates/Dockerfile +0 -0
  87. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/templates/__init__.py +0 -0
  88. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/templates/auth.py +0 -0
  89. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/templates/dependabot.yml +0 -0
  90. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/cli/templates/ruff.yml +0 -0
  91. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/__init__.py +0 -0
  92. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/ansi_colors.py +0 -0
  93. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/auth.py +0 -0
  94. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/decorators.py +0 -0
  95. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/enums.py +0 -0
  96. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/errors.py +0 -0
  97. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/pagination.py +0 -0
  98. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/router/admin_router.py +0 -0
  99. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/router/status_router.py +0 -0
  100. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/scopes.py +0 -0
  101. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/urls.py +0 -0
  102. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/common/utils.py +0 -0
  103. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/__init__.py +0 -0
  104. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/api/__init__.py +0 -0
  105. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/api/data_api.py +0 -0
  106. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/api/models_api.py +0 -0
  107. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/api/status_api.py +0 -0
  108. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/api_client.py +0 -0
  109. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/api_response.py +0 -0
  110. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/configuration.py +0 -0
  111. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/exceptions.py +0 -0
  112. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/coins.py +0 -0
  113. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/data_download_response.py +0 -0
  114. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/data_version.py +0 -0
  115. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/data_version_info.py +0 -0
  116. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/download_links.py +0 -0
  117. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/evaluation.py +0 -0
  118. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/evaluation_response.py +0 -0
  119. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/feature_size.py +0 -0
  120. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/log_level.py +0 -0
  121. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/model_create.py +0 -0
  122. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/model_status.py +0 -0
  123. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/model_update.py +0 -0
  124. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/target.py +0 -0
  125. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/target_info.py +0 -0
  126. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/models/target_type.py +0 -0
  127. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/py.typed +0 -0
  128. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/client/rest.py +0 -0
  129. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/hive/utils.py +0 -0
  130. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/__init__.py +0 -0
  131. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/__init__.py +0 -0
  132. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api/__init__.py +0 -0
  133. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api/change_in_timeframe_api.py +0 -0
  134. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api/funding_rates_api.py +0 -0
  135. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api/ohlcv_data_api.py +0 -0
  136. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api/status_api.py +0 -0
  137. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api/symbols_api.py +0 -0
  138. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api/udf_api.py +0 -0
  139. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api_client.py +0 -0
  140. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/api_response.py +0 -0
  141. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/configuration.py +0 -0
  142. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/exceptions.py +0 -0
  143. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/__init__.py +0 -0
  144. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/change_in_timeframe.py +0 -0
  145. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/exception_detail.py +0 -0
  146. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/funding_rate.py +0 -0
  147. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/ohlcv_history.py +0 -0
  148. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/resolution.py +0 -0
  149. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/search_symbol.py +0 -0
  150. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/sort_direction.py +0 -0
  151. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/symbol_group.py +0 -0
  152. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/symbol_info.py +0 -0
  153. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/symbol_type.py +0 -0
  154. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/timeframe.py +0 -0
  155. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/models/udf_config.py +0 -0
  156. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/py.typed +0 -0
  157. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/client/rest.py +0 -0
  158. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/klines/main.py +0 -0
  159. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/__init__.py +0 -0
  160. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/__init__.py +0 -0
  161. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/__init__.py +0 -0
  162. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/exchanges_api.py +0 -0
  163. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/indicators_api.py +0 -0
  164. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/logs_api.py +0 -0
  165. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/marketcap_api.py +0 -0
  166. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/markets_api.py +0 -0
  167. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/status_api.py +0 -0
  168. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api/tokens_api.py +0 -0
  169. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api_client.py +0 -0
  170. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/api_response.py +0 -0
  171. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/configuration.py +0 -0
  172. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/exceptions.py +0 -0
  173. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/models/__init__.py +0 -0
  174. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/models/exception_detail.py +0 -0
  175. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/models/severity.py +0 -0
  176. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/models/time_interval.py +0 -0
  177. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/models/trading_status.py +0 -0
  178. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/py.typed +0 -0
  179. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/client/rest.py +0 -0
  180. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/metrics/main.py +0 -0
  181. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/__init__.py +0 -0
  182. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/__init__.py +0 -0
  183. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api/__init__.py +0 -0
  184. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api/admin_api.py +0 -0
  185. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api/now_payments_api.py +0 -0
  186. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api/payments_api.py +0 -0
  187. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api/products_api.py +0 -0
  188. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api/status_api.py +0 -0
  189. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api_client.py +0 -0
  190. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/api_response.py +0 -0
  191. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/configuration.py +0 -0
  192. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/exceptions.py +0 -0
  193. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/__init__.py +0 -0
  194. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/exception_detail.py +0 -0
  195. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/log_level.py +0 -0
  196. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/now_create_invoice_req.py +0 -0
  197. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/now_create_invoice_res.py +0 -0
  198. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/payment.py +0 -0
  199. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/payment_status.py +0 -0
  200. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/product_create.py +0 -0
  201. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/product_read.py +0 -0
  202. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/product_sub_read.py +0 -0
  203. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/product_update.py +0 -0
  204. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/provider.py +0 -0
  205. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/response_getuptime.py +0 -0
  206. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/models/scope.py +0 -0
  207. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/py.typed +0 -0
  208. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/pay/client/rest.py +0 -0
  209. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/__init__.py +0 -0
  210. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/__init__.py +0 -0
  211. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/__init__.py +0 -0
  212. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/api_keys_api.py +0 -0
  213. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/bots_api.py +0 -0
  214. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/exchanges_api.py +0 -0
  215. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/futures_trading_panel_api.py +0 -0
  216. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/notifications_api.py +0 -0
  217. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/orders_api.py +0 -0
  218. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/status_api.py +0 -0
  219. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/strategies_api.py +0 -0
  220. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api/trading_actions_api.py +0 -0
  221. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api_client.py +0 -0
  222. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/api_response.py +0 -0
  223. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/configuration.py +0 -0
  224. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/exceptions.py +0 -0
  225. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/__init__.py +0 -0
  226. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/action_model.py +0 -0
  227. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/bot_model.py +0 -0
  228. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/bot_status.py +0 -0
  229. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/exception_detail.py +0 -0
  230. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/exchange_key_model.py +0 -0
  231. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/execution_ids.py +0 -0
  232. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/futures_balance.py +0 -0
  233. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/futures_trading_action.py +0 -0
  234. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/margin_mode.py +0 -0
  235. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/notification_model.py +0 -0
  236. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/order_model.py +0 -0
  237. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/order_status.py +0 -0
  238. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/post_futures_action.py +0 -0
  239. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/spot_trading_action.py +0 -0
  240. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/strategy_exchange_info.py +0 -0
  241. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/strategy_model_input.py +0 -0
  242. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/strategy_model_output.py +0 -0
  243. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/tpsl.py +0 -0
  244. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/models/trading_action_type.py +0 -0
  245. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/py.typed +0 -0
  246. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/client/rest.py +0 -0
  247. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn/trade/main.py +0 -0
  248. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn.egg-info/dependency_links.txt +0 -0
  249. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn.egg-info/entry_points.txt +0 -0
  250. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn.egg-info/requires.txt +0 -0
  251. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/crypticorn.egg-info/top_level.txt +0 -0
  252. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/requirements/dev.txt +0 -0
  253. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/requirements/extra.txt +0 -0
  254. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/requirements/main.txt +0 -0
  255. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/requirements/test.txt +0 -0
  256. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/setup.cfg +0 -0
  257. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/tests/test_auth_client.py +0 -0
  258. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/tests/test_config.py +0 -0
  259. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/tests/test_enums.py +0 -0
  260. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/tests/test_errors.py +0 -0
  261. {crypticorn-2.8.0rc6 → crypticorn-2.8.0rc8}/tests/test_pagination.py +0 -0
@@ -1,6 +1,22 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v2.8.0-rc.8 (2025-05-07)
5
+
6
+ ### Bug Fixes
7
+
8
+ - Use root logger of the client with specific child logger as option
9
+ ([`2f8cde2`](https://github.com/crypticorn-ai/api-client/commit/2f8cde2659f22704c5c4310f3ec9a07cbd1d4cef))
10
+
11
+
12
+ ## v2.8.0-rc.7 (2025-05-07)
13
+
14
+ ### Bug Fixes
15
+
16
+ - Pass args to the override function in hive data download
17
+ ([`7bb3e29`](https://github.com/crypticorn-ai/api-client/commit/7bb3e2997f79da8e4e55b42a1a699a75fe1f985f))
18
+
19
+
4
20
  ## v2.8.0-rc.6 (2025-05-07)
5
21
 
6
22
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.8.0rc6
3
+ Version: 2.8.0rc8
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License: MIT
@@ -84,7 +84,7 @@ The ApiClient serves as the central interface for API operations. It instantiate
84
84
 
85
85
  <img src="../static/pip-structure.svg" alt="pip package structure" />
86
86
 
87
- You can either explore each API by clicking through the library or checkout the [API Documentation](https://docs.crypticorn.dev/api).
87
+ You can either explore each API by clicking through the library or checkout the [API Documentation](https://docs.crypticorn.com/api).
88
88
 
89
89
  Request and response models for API operations should be accessed through the sub package you are using for an operation. All symbols are re-exported at the sub package level for convenience.
90
90
 
@@ -180,7 +180,7 @@ Some API operations allow to get the returned data formatted as a pandas Datafra
180
180
 
181
181
  ### Data Downloads
182
182
  This utility allows direct data streaming to your local disk, instead of only returning download links. It is being used in the following functions:
183
- - `client.hive.data.download_data()` (overrides the [default response](https://docs.crypticorn.dev/api/?api=hive-ai-api#tag/data/GET/data))
183
+ - `client.hive.data.download_data()` (overrides the [default response](https://docs.crypticorn.com/api/?api=hive-ai-api#tag/data/GET/data))
184
184
 
185
185
  ## Advanced Usage
186
186
 
@@ -31,7 +31,7 @@ The ApiClient serves as the central interface for API operations. It instantiate
31
31
 
32
32
  <img src="../static/pip-structure.svg" alt="pip package structure" />
33
33
 
34
- You can either explore each API by clicking through the library or checkout the [API Documentation](https://docs.crypticorn.dev/api).
34
+ You can either explore each API by clicking through the library or checkout the [API Documentation](https://docs.crypticorn.com/api).
35
35
 
36
36
  Request and response models for API operations should be accessed through the sub package you are using for an operation. All symbols are re-exported at the sub package level for convenience.
37
37
 
@@ -127,7 +127,7 @@ Some API operations allow to get the returned data formatted as a pandas Datafra
127
127
 
128
128
  ### Data Downloads
129
129
  This utility allows direct data streaming to your local disk, instead of only returning download links. It is being used in the following functions:
130
- - `client.hive.data.download_data()` (overrides the [default response](https://docs.crypticorn.dev/api/?api=hive-ai-api#tag/data/GET/data))
130
+ - `client.hive.data.download_data()` (overrides the [default response](https://docs.crypticorn.com/api/?api=hive-ai-api#tag/data/GET/data))
131
131
 
132
132
  ## Advanced Usage
133
133
 
@@ -8,7 +8,7 @@ You can find the full Changelog [below](#changelog).
8
8
 
9
9
  from crypticorn.common.logging import configure_logging
10
10
 
11
- configure_logging("crypticorn")
11
+ configure_logging()
12
12
 
13
13
  from crypticorn.client import ApiClient
14
14
 
@@ -63,7 +63,7 @@ class ApiClient:
63
63
  def klines(self) -> KlinesClient:
64
64
  """
65
65
  Entry point for the Klines API ([Docs](https://docs.crypticorn.com/api/?api=klines-api)).
66
- """
66
+ """
67
67
  return self._services[Service.KLINES]
68
68
 
69
69
  @property
@@ -6,7 +6,7 @@ from fastapi.exceptions import RequestValidationError, ResponseValidationError
6
6
  from fastapi.responses import JSONResponse
7
7
  from crypticorn.common import ApiError, ApiErrorIdentifier, ApiErrorType, ApiErrorLevel
8
8
  import logging
9
-
9
+ import json
10
10
  logger = logging.getLogger(__name__)
11
11
 
12
12
 
@@ -99,7 +99,7 @@ async def general_handler(request: Request, exc: Exception) -> JSONResponse:
99
99
  status_code=body.enrich().status_code,
100
100
  content=HTTPException(content=body).detail,
101
101
  )
102
- logger.error(f"Response validation error: {res}")
102
+ logger.error(f"Response validation error: {json.loads(res.__dict__.get('body'))}")
103
103
  return res
104
104
 
105
105
 
@@ -112,7 +112,7 @@ async def request_validation_handler(
112
112
  status_code=body.enrich().status_code,
113
113
  content=HTTPException(content=body).detail,
114
114
  )
115
- logger.error(f"Response validation error: {res}")
115
+ logger.error(f"Response validation error: {json.loads(res.__dict__.get('body'))}")
116
116
  return res
117
117
 
118
118
 
@@ -125,7 +125,7 @@ async def response_validation_handler(
125
125
  status_code=body.enrich().status_code,
126
126
  content=HTTPException(content=body).detail,
127
127
  )
128
- logger.error(f"Response validation error: {res}")
128
+ logger.error(f"Response validation error: {json.loads(res.__dict__.get('body'))}")
129
129
  return res
130
130
 
131
131
 
@@ -12,8 +12,7 @@ from crypticorn.common.mixins import ValidateEnumMixin
12
12
  from crypticorn.common.ansi_colors import AnsiColors as C
13
13
  from datetime import datetime
14
14
  import os
15
-
16
-
15
+
17
16
  class LogLevel(ValidateEnumMixin, StrEnum):
18
17
  DEBUG = "DEBUG"
19
18
  INFO = "INFO"
@@ -71,7 +70,7 @@ class CustomFormatter(logging.Formatter):
71
70
 
72
71
 
73
72
  def configure_logging(
74
- name: str,
73
+ name: str = None,
75
74
  fmt: str = _LOGFORMAT,
76
75
  datefmt: str = _DATEFMT,
77
76
  stdout_level: int = logging.INFO,
@@ -82,8 +81,15 @@ def configure_logging(
82
81
  """Configures the logging for the application.
83
82
  Run this function as early as possible in the application (for example using the `lifespan` parameter in FastAPI).
84
83
  Then use can use the default `logging.getLogger(__name__)` method to get the logger.
84
+ :param name: The name of the logger. If not provided, the root logger will be used. Use a name if use multiple loggers in the same application.
85
+ :param fmt: The format of the log message.
86
+ :param datefmt: The date format of the log message.
87
+ :param stdout_level: The level of the log message to be printed to the console.
88
+ :param file_level: The level of the log message to be written to the file. Only used if `log_file` is provided.
89
+ :param log_file: The file to write the log messages to.
90
+ :param filters: A list of filters to apply to the log handlers.
85
91
  """
86
- logger = logging.getLogger(name)
92
+ logger = logging.getLogger(name) if name else logging.getLogger()
87
93
 
88
94
  if logger.handlers: # clear existing handlers to avoid duplicates
89
95
  logger.handlers.clear()
@@ -109,6 +115,9 @@ def configure_logging(
109
115
  for filter in filters:
110
116
  file_handler.addFilter(filter)
111
117
  logger.addHandler(file_handler)
118
+
119
+ if name:
120
+ logger.propagate = False
112
121
 
113
122
 
114
123
  def disable_logging():
@@ -11,7 +11,7 @@ def add_cors_middleware(app: "FastAPI"):
11
11
  "http://localhost:5173", # vite dev server
12
12
  "http://localhost:4173", # vite preview server
13
13
  ],
14
- allow_origin_regex="^https:\/\/([a-zA-Z0-9-]+\.)*crypticorn\.(dev|com)\/?$", # matches (multiple or no) subdomains of crypticorn.dev and crypticorn.com
14
+ allow_origin_regex="^https://([a-zA-Z0-9-]+.)*crypticorn.(dev|com)/?$", # matches (multiple or no) subdomains of crypticorn.dev and crypticorn.com
15
15
  allow_credentials=True,
16
16
  allow_methods=["*"],
17
17
  allow_headers=["*"],
@@ -23,6 +23,5 @@ async def default_lifespan(app: FastAPI):
23
23
  This is used to configure the logging for the application.
24
24
  To override this, pass a different lifespan to the FastAPI constructor or call this lifespan within a custom lifespan.
25
25
  """
26
- configure_logging(__name__) # for the consuming app
27
- logger = logging.getLogger(__name__)
26
+ configure_logging()
28
27
  yield
@@ -32,14 +32,15 @@ class ValidateEnumMixin:
32
32
  except ValueError:
33
33
  return False
34
34
 
35
- #This Mixin will be removed in a future version. And has no effect from now on
35
+
36
+ # This Mixin will be removed in a future version. And has no effect from now on
36
37
  class ExcludeEnumMixin:
37
38
  """Mixin to exclude enum from OpenAPI schema. We use this to avoid duplicating enums when generating client code from the openapi spec."""
38
39
 
39
40
  @classmethod
40
41
  def __get_pydantic_json_schema__(cls, core_schema, handler):
41
42
  schema = handler(core_schema)
42
- #schema.pop("enum", None)
43
+ # schema.pop("enum", None)
43
44
  return schema
44
45
 
45
46
 
@@ -34,12 +34,13 @@ from crypticorn.hive.client.exceptions import ApiAttributeError
34
34
  from crypticorn.hive.client.exceptions import ApiException
35
35
 
36
36
  # import models into sdk package
37
+ from crypticorn.hive.client.models.api_error_identifier import ApiErrorIdentifier
38
+ from crypticorn.hive.client.models.api_error_level import ApiErrorLevel
39
+ from crypticorn.hive.client.models.api_error_type import ApiErrorType
37
40
  from crypticorn.hive.client.models.coins import Coins
38
41
  from crypticorn.hive.client.models.data_download_response import DataDownloadResponse
39
42
  from crypticorn.hive.client.models.data_info import DataInfo
40
- from crypticorn.hive.client.models.data_value_value_value_inner import (
41
- DataValueValueValueInner,
42
- )
43
+ from crypticorn.hive.client.models.data_options import DataOptions
43
44
  from crypticorn.hive.client.models.data_version import DataVersion
44
45
  from crypticorn.hive.client.models.data_version_info import DataVersionInfo
45
46
  from crypticorn.hive.client.models.download_links import DownloadLinks
@@ -52,7 +53,6 @@ from crypticorn.hive.client.models.model import Model
52
53
  from crypticorn.hive.client.models.model_create import ModelCreate
53
54
  from crypticorn.hive.client.models.model_status import ModelStatus
54
55
  from crypticorn.hive.client.models.model_update import ModelUpdate
55
- from crypticorn.hive.client.models.response_getuptime import ResponseGetuptime
56
56
  from crypticorn.hive.client.models.target import Target
57
57
  from crypticorn.hive.client.models.target_info import TargetInfo
58
58
  from crypticorn.hive.client.models.target_type import TargetType
@@ -20,7 +20,6 @@ from pydantic import Field, StrictInt, StrictStr, field_validator
20
20
  from typing import Any, Dict, List, Optional
21
21
  from typing_extensions import Annotated
22
22
  from crypticorn.hive.client.models.log_level import LogLevel
23
- from crypticorn.hive.client.models.response_getuptime import ResponseGetuptime
24
23
 
25
24
  from crypticorn.hive.client.api_client import ApiClient, RequestSerialized
26
25
  from crypticorn.hive.client.api_response import ApiResponse
@@ -1223,7 +1222,7 @@ class AdminApi:
1223
1222
  _content_type: Optional[StrictStr] = None,
1224
1223
  _headers: Optional[Dict[StrictStr, Any]] = None,
1225
1224
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1226
- ) -> ResponseGetuptime:
1225
+ ) -> str:
1227
1226
  """Get Uptime
1228
1227
 
1229
1228
  Return the server uptime in seconds or human-readable form.
@@ -1261,7 +1260,7 @@ class AdminApi:
1261
1260
  )
1262
1261
 
1263
1262
  _response_types_map: Dict[str, Optional[str]] = {
1264
- "200": "ResponseGetuptime",
1263
+ "200": "str",
1265
1264
  }
1266
1265
  response_data = await self.api_client.call_api(
1267
1266
  *_param, _request_timeout=_request_timeout
@@ -1287,7 +1286,7 @@ class AdminApi:
1287
1286
  _content_type: Optional[StrictStr] = None,
1288
1287
  _headers: Optional[Dict[StrictStr, Any]] = None,
1289
1288
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1290
- ) -> ApiResponse[ResponseGetuptime]:
1289
+ ) -> ApiResponse[str]:
1291
1290
  """Get Uptime
1292
1291
 
1293
1292
  Return the server uptime in seconds or human-readable form.
@@ -1325,7 +1324,7 @@ class AdminApi:
1325
1324
  )
1326
1325
 
1327
1326
  _response_types_map: Dict[str, Optional[str]] = {
1328
- "200": "ResponseGetuptime",
1327
+ "200": "str",
1329
1328
  }
1330
1329
  response_data = await self.api_client.call_api(
1331
1330
  *_param, _request_timeout=_request_timeout
@@ -1389,7 +1388,7 @@ class AdminApi:
1389
1388
  )
1390
1389
 
1391
1390
  _response_types_map: Dict[str, Optional[str]] = {
1392
- "200": "ResponseGetuptime",
1391
+ "200": "str",
1393
1392
  }
1394
1393
  response_data = await self.api_client.call_api(
1395
1394
  *_param, _request_timeout=_request_timeout
@@ -14,12 +14,13 @@ Do not edit the class manually.
14
14
 
15
15
 
16
16
  # import models into model package
17
+ from crypticorn.hive.client.models.api_error_identifier import ApiErrorIdentifier
18
+ from crypticorn.hive.client.models.api_error_level import ApiErrorLevel
19
+ from crypticorn.hive.client.models.api_error_type import ApiErrorType
17
20
  from crypticorn.hive.client.models.coins import Coins
18
21
  from crypticorn.hive.client.models.data_download_response import DataDownloadResponse
19
22
  from crypticorn.hive.client.models.data_info import DataInfo
20
- from crypticorn.hive.client.models.data_value_value_value_inner import (
21
- DataValueValueValueInner,
22
- )
23
+ from crypticorn.hive.client.models.data_options import DataOptions
23
24
  from crypticorn.hive.client.models.data_version import DataVersion
24
25
  from crypticorn.hive.client.models.data_version_info import DataVersionInfo
25
26
  from crypticorn.hive.client.models.download_links import DownloadLinks
@@ -32,7 +33,6 @@ from crypticorn.hive.client.models.model import Model
32
33
  from crypticorn.hive.client.models.model_create import ModelCreate
33
34
  from crypticorn.hive.client.models.model_status import ModelStatus
34
35
  from crypticorn.hive.client.models.model_update import ModelUpdate
35
- from crypticorn.hive.client.models.response_getuptime import ResponseGetuptime
36
36
  from crypticorn.hive.client.models.target import Target
37
37
  from crypticorn.hive.client.models.target_info import TargetInfo
38
38
  from crypticorn.hive.client.models.target_type import TargetType
@@ -0,0 +1,115 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Hive AI API
5
+
6
+ API for Hive AI model training and evaluation
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorIdentifier(str, Enum):
22
+ """
23
+ API error identifiers
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ ALLOCATION_BELOW_CURRENT_EXPOSURE = "allocation_below_current_exposure"
30
+ ALLOCATION_BELOW_MIN_AMOUNT = "allocation_below_min_amount"
31
+ BLACK_SWAN = "black_swan"
32
+ BOT_ALREADY_DELETED = "bot_already_deleted"
33
+ BOT_DISABLED = "bot_disabled"
34
+ BOT_STOPPING_COMPLETED = "bot_stopping_completed"
35
+ BOT_STOPPING_STARTED = "bot_stopping_started"
36
+ CLIENT_ORDER_ID_ALREADY_EXISTS = "client_order_id_already_exists"
37
+ INVALID_CONTENT_TYPE = "invalid_content_type"
38
+ DELETE_BOT_ERROR = "delete_bot_error"
39
+ EXCHANGE_INVALID_SIGNATURE = "exchange_invalid_signature"
40
+ EXCHANGE_INVALID_TIMESTAMP = "exchange_invalid_timestamp"
41
+ EXCHANGE_IP_ADDRESS_IS_NOT_AUTHORIZED = "exchange_ip_address_is_not_authorized"
42
+ EXCHANGE_KEY_ALREADY_EXISTS = "exchange_key_already_exists"
43
+ EXCHANGE_KEY_IN_USE = "exchange_key_in_use"
44
+ EXCHANGE_SYSTEM_UNDER_MAINTENANCE = "exchange_system_under_maintenance"
45
+ EXCHANGE_RATE_LIMIT_EXCEEDED = "exchange_rate_limit_exceeded"
46
+ INSUFFICIENT_PERMISSIONS_SPOT_AND_FUTURES_REQUIRED = (
47
+ "insufficient_permissions_spot_and_futures_required"
48
+ )
49
+ EXCHANGE_SERVICE_TEMPORARILY_UNAVAILABLE = (
50
+ "exchange_service_temporarily_unavailable"
51
+ )
52
+ EXCHANGE_SYSTEM_IS_BUSY = "exchange_system_is_busy"
53
+ EXCHANGE_SYSTEM_CONFIGURATION_ERROR = "exchange_system_configuration_error"
54
+ EXCHANGE_INTERNAL_SYSTEM_ERROR = "exchange_internal_system_error"
55
+ EXCHANGE_USER_ACCOUNT_IS_FROZEN = "exchange_user_account_is_frozen"
56
+ API_KEY_EXPIRED = "api_key_expired"
57
+ BEARER_TOKEN_EXPIRED = "bearer_token_expired"
58
+ FORBIDDEN = "forbidden"
59
+ HEDGE_MODE_NOT_ACTIVE = "hedge_mode_not_active"
60
+ HTTP_REQUEST_ERROR = "http_request_error"
61
+ INSUFFICIENT_BALANCE = "insufficient_balance"
62
+ INSUFFICIENT_MARGIN = "insufficient_margin"
63
+ INSUFFICIENT_SCOPES = "insufficient_scopes"
64
+ INVALID_API_KEY = "invalid_api_key"
65
+ INVALID_BEARER = "invalid_bearer"
66
+ INVALID_DATA = "invalid_data"
67
+ INVALID_DATA_RESPONSE = "invalid_data_response"
68
+ INVALID_EXCHANGE_KEY = "invalid_exchange_key"
69
+ INVALID_MARGIN_MODE = "invalid_margin_mode"
70
+ INVALID_MODEL_NAME = "invalid_model_name"
71
+ INVALID_PARAMETER_PROVIDED = "invalid_parameter_provided"
72
+ LEVERAGE_LIMIT_EXCEEDED = "leverage_limit_exceeded"
73
+ ORDER_VIOLATES_LIQUIDATION_PRICE_CONSTRAINTS = (
74
+ "order_violates_liquidation_price_constraints"
75
+ )
76
+ MODEL_NAME_NOT_UNIQUE = "model_name_not_unique"
77
+ NO_CREDENTIALS = "no_credentials"
78
+ NOW_API_DOWN = "now_api_down"
79
+ OBJECT_ALREADY_EXISTS = "object_already_exists"
80
+ OBJECT_CREATED = "object_created"
81
+ OBJECT_DELETED = "object_deleted"
82
+ OBJECT_NOT_FOUND = "object_not_found"
83
+ OBJECT_UPDATED = "object_updated"
84
+ ORDER_IS_ALREADY_FILLED = "order_is_already_filled"
85
+ ORDER_IS_BEING_PROCESSED = "order_is_being_processed"
86
+ ORDER_QUANTITY_LIMIT_EXCEEDED = "order_quantity_limit_exceeded"
87
+ ORDER_DOES_NOT_EXIST = "order_does_not_exist"
88
+ ORDER_PRICE_IS_INVALID = "order_price_is_invalid"
89
+ ORDER_SIZE_TOO_LARGE = "order_size_too_large"
90
+ ORDER_SIZE_TOO_SMALL = "order_size_too_small"
91
+ POSITION_LIMIT_EXCEEDED = "position_limit_exceeded"
92
+ POSITION_DOES_NOT_EXIST = "position_does_not_exist"
93
+ POSITION_OPENING_TEMPORARILY_SUSPENDED = "position_opening_temporarily_suspended"
94
+ POST_ONLY_ORDER_WOULD_IMMEDIATELY_MATCH = "post_only_order_would_immediately_match"
95
+ REQUEST_SCOPE_LIMIT_EXCEEDED = "request_scope_limit_exceeded"
96
+ RISK_LIMIT_EXCEEDED = "risk_limit_exceeded"
97
+ RPC_TIMEOUT = "rpc_timeout"
98
+ SYSTEM_SETTLEMENT_IN_PROCESS = "system_settlement_in_process"
99
+ STRATEGY_ALREADY_EXISTS = "strategy_already_exists"
100
+ STRATEGY_DISABLED = "strategy_disabled"
101
+ STRATEGY_LEVERAGE_MISMATCH = "strategy_leverage_mismatch"
102
+ STRATEGY_NOT_SUPPORTING_EXCHANGE = "strategy_not_supporting_exchange"
103
+ SUCCESS = "success"
104
+ SYMBOL_DOES_NOT_EXIST = "symbol_does_not_exist"
105
+ TRADING_ACTION_EXPIRED = "trading_action_expired"
106
+ TRADING_ACTION_SKIPPED = "trading_action_skipped"
107
+ TRADING_HAS_BEEN_LOCKED = "trading_has_been_locked"
108
+ TRADING_IS_SUSPENDED = "trading_is_suspended"
109
+ UNKNOWN_ERROR_OCCURRED = "unknown_error_occurred"
110
+ REQUESTED_RESOURCE_NOT_FOUND = "requested_resource_not_found"
111
+
112
+ @classmethod
113
+ def from_json(cls, json_str: str) -> Self:
114
+ """Create an instance of ApiErrorIdentifier from a JSON string"""
115
+ return cls(json.loads(json_str))
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Hive AI API
5
+
6
+ API for Hive AI model training and evaluation
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorLevel(str, Enum):
22
+ """
23
+ API error levels
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ ERROR = "error"
30
+ INFO = "info"
31
+ SUCCESS = "success"
32
+ WARNING = "warning"
33
+
34
+ @classmethod
35
+ def from_json(cls, json_str: str) -> Self:
36
+ """Create an instance of ApiErrorLevel from a JSON string"""
37
+ return cls(json.loads(json_str))
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Hive AI API
5
+
6
+ API for Hive AI model training and evaluation
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorType(str, Enum):
22
+ """
23
+ Type of API error
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ USER_ERROR = "user error"
30
+ EXCHANGE_ERROR = "exchange error"
31
+ SERVER_ERROR = "server error"
32
+ NO_ERROR = "no error"
33
+
34
+ @classmethod
35
+ def from_json(cls, json_str: str) -> Self:
36
+ """Create an instance of ApiErrorType from a JSON string"""
37
+ return cls(json.loads(json_str))
@@ -20,9 +20,7 @@ import json
20
20
  from pydantic import BaseModel, ConfigDict, Field
21
21
  from typing import Any, ClassVar, Dict, List
22
22
  from crypticorn.hive.client.models.coins import Coins
23
- from crypticorn.hive.client.models.data_value_value_value_inner import (
24
- DataValueValueValueInner,
25
- )
23
+ from crypticorn.hive.client.models.data_options import DataOptions
26
24
  from crypticorn.hive.client.models.data_version_info import DataVersionInfo
27
25
  from crypticorn.hive.client.models.feature_size import FeatureSize
28
26
  from crypticorn.hive.client.models.target_info import TargetInfo
@@ -35,7 +33,7 @@ class DataInfo(BaseModel):
35
33
  The complete data information for all versions, coins, feature sizes and targets
36
34
  """ # noqa: E501
37
35
 
38
- data: Dict[str, Dict[str, Dict[str, List[DataValueValueValueInner]]]] = Field(
36
+ data: Dict[str, Dict[str, DataOptions]] = Field(
39
37
  description="The complete data information for all versions, coins, feature sizes and targets."
40
38
  )
41
39
  coins: List[Coins] = Field(
@@ -99,6 +97,13 @@ class DataInfo(BaseModel):
99
97
  exclude=excluded_fields,
100
98
  exclude_none=True,
101
99
  )
100
+ # override the default output from pydantic by calling `to_dict()` of each value in data (dict)
101
+ _field_dict = {}
102
+ if self.data:
103
+ for _key_data in self.data:
104
+ if self.data[_key_data]:
105
+ _field_dict[_key_data] = self.data[_key_data].to_dict()
106
+ _dict["data"] = _field_dict
102
107
  # override the default output from pydantic by calling `to_dict()` of each item in targets (list)
103
108
  _items = []
104
109
  if self.targets:
@@ -133,7 +138,24 @@ class DataInfo(BaseModel):
133
138
 
134
139
  _obj = cls.model_validate(
135
140
  {
136
- "data": obj.get("data"),
141
+ "data": (
142
+ dict(
143
+ (
144
+ _k,
145
+ (
146
+ dict(
147
+ (_ik, DataOptions.from_dict(_iv))
148
+ for _ik, _iv in _v.items()
149
+ )
150
+ if _v is not None
151
+ else None
152
+ ),
153
+ )
154
+ for _k, _v in obj.get("data").items()
155
+ )
156
+ if obj.get("data") is not None
157
+ else None
158
+ ),
137
159
  "coins": obj.get("coins"),
138
160
  "feature_sizes": obj.get("feature_sizes"),
139
161
  "targets": (
@@ -0,0 +1,92 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Hive AI API
5
+
6
+ API for Hive AI model training and evaluation
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field
21
+ from typing import Any, ClassVar, Dict, List
22
+ from crypticorn.hive.client.models.feature_size import FeatureSize
23
+ from crypticorn.hive.client.models.target import Target
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+
28
+ class DataOptions(BaseModel):
29
+ """
30
+ DataOptions
31
+ """ # noqa: E501
32
+
33
+ targets: List[Target] = Field(
34
+ description="The targets available on the latest data version."
35
+ )
36
+ feature_sizes: List[FeatureSize] = Field(
37
+ description="The feature sizes available on the latest data version."
38
+ )
39
+ __properties: ClassVar[List[str]] = ["targets", "feature_sizes"]
40
+
41
+ model_config = ConfigDict(
42
+ populate_by_name=True,
43
+ validate_assignment=True,
44
+ protected_namespaces=(),
45
+ )
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.model_dump(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
54
+ return json.dumps(self.to_dict())
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> Optional[Self]:
58
+ """Create an instance of DataOptions from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self) -> Dict[str, Any]:
62
+ """Return the dictionary representation of the model using alias.
63
+
64
+ This has the following differences from calling pydantic's
65
+ `self.model_dump(by_alias=True)`:
66
+
67
+ * `None` is only added to the output dict for nullable fields that
68
+ were set at model initialization. Other fields with value `None`
69
+ are ignored.
70
+ """
71
+ excluded_fields: Set[str] = set([])
72
+
73
+ _dict = self.model_dump(
74
+ by_alias=True,
75
+ exclude=excluded_fields,
76
+ exclude_none=True,
77
+ )
78
+ return _dict
79
+
80
+ @classmethod
81
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
82
+ """Create an instance of DataOptions from a dict"""
83
+ if obj is None:
84
+ return None
85
+
86
+ if not isinstance(obj, dict):
87
+ return cls.model_validate(obj)
88
+
89
+ _obj = cls.model_validate(
90
+ {"targets": obj.get("targets"), "feature_sizes": obj.get("feature_sizes")}
91
+ )
92
+ return _obj