crypticorn 2.7.3__tar.gz → 2.7.4__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 (246) hide show
  1. crypticorn-2.7.4/MANIFEST.in +1 -0
  2. {crypticorn-2.7.3 → crypticorn-2.7.4}/PKG-INFO +22 -17
  3. {crypticorn-2.7.3 → crypticorn-2.7.4}/README.md +18 -16
  4. crypticorn-2.7.4/crypticorn/cli/templates/Dockerfile +33 -0
  5. crypticorn-2.7.4/crypticorn/cli/templates/dependabot.yml +26 -0
  6. crypticorn-2.7.4/crypticorn/cli/templates/ruff.yml +12 -0
  7. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn.egg-info/PKG-INFO +22 -17
  8. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn.egg-info/SOURCES.txt +4 -0
  9. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn.egg-info/requires.txt +2 -0
  10. {crypticorn-2.7.3 → crypticorn-2.7.4}/pyproject.toml +2 -1
  11. {crypticorn-2.7.3 → crypticorn-2.7.4}/requirements/dev.txt +2 -0
  12. {crypticorn-2.7.3 → crypticorn-2.7.4}/tests/test_config.py +1 -1
  13. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/__init__.py +0 -0
  14. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/__init__.py +0 -0
  15. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/__init__.py +0 -0
  16. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api/__init__.py +0 -0
  17. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api/admin_api.py +0 -0
  18. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api/auth_api.py +0 -0
  19. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api/service_api.py +0 -0
  20. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api/user_api.py +0 -0
  21. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api/wallet_api.py +0 -0
  22. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api_client.py +0 -0
  23. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/api_response.py +0 -0
  24. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/configuration.py +0 -0
  25. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/exceptions.py +0 -0
  26. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/__init__.py +0 -0
  27. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/add_wallet200_response.py +0 -0
  28. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/add_wallet_request.py +0 -0
  29. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/authorize_user200_response.py +0 -0
  30. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/authorize_user200_response_auth.py +0 -0
  31. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/authorize_user_request.py +0 -0
  32. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/create_api_key200_response.py +0 -0
  33. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/create_api_key_request.py +0 -0
  34. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/create_user_request.py +0 -0
  35. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/get_api_keys200_response_inner.py +0 -0
  36. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/list_wallets200_response.py +0 -0
  37. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner.py +0 -0
  38. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +0 -0
  39. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +0 -0
  40. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +0 -0
  41. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/list_wallets200_response_data_inner.py +0 -0
  42. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/list_wallets200_response_user_value.py +0 -0
  43. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/logout_default_response.py +0 -0
  44. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/logout_default_response_issues_inner.py +0 -0
  45. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/oauth_callback200_response.py +0 -0
  46. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/oauth_callback200_response_user.py +0 -0
  47. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/refresh_token_info200_response.py +0 -0
  48. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +0 -0
  49. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/resend_verification_email_request.py +0 -0
  50. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/revoke_user_tokens_request.py +0 -0
  51. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/rotate_tokens200_response.py +0 -0
  52. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/token_info200_response.py +0 -0
  53. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/unlink_wallet_request.py +0 -0
  54. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/update_user_request.py +0 -0
  55. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/user_by_username200_response.py +0 -0
  56. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/user_reset_password_request.py +0 -0
  57. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/user_set_password_request.py +0 -0
  58. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/verify200_response.py +0 -0
  59. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/verify_email200_response.py +0 -0
  60. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/verify_email200_response_auth.py +0 -0
  61. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/verify_email200_response_auth_auth.py +0 -0
  62. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/verify_email_request.py +0 -0
  63. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/verify_wallet_request.py +0 -0
  64. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/wallet_verified200_response.py +0 -0
  65. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/models/whoami200_response.py +0 -0
  66. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/py.typed +0 -0
  67. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/client/rest.py +0 -0
  68. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/auth/main.py +0 -0
  69. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/cli/__init__.py +0 -0
  70. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/cli/__main__.py +0 -0
  71. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/cli/init.py +0 -0
  72. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/cli/templates/__init__.py +0 -0
  73. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/cli/templates/auth.py +0 -0
  74. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/client.py +0 -0
  75. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/__init__.py +0 -0
  76. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/auth.py +0 -0
  77. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/decorators.py +0 -0
  78. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/enums.py +0 -0
  79. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/errors.py +5 -5
  80. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/exceptions.py +0 -0
  81. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/mixins.py +0 -0
  82. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/pagination.py +0 -0
  83. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/scopes.py +0 -0
  84. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/status_router.py +0 -0
  85. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/urls.py +0 -0
  86. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/common/utils.py +0 -0
  87. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/__init__.py +0 -0
  88. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/__init__.py +0 -0
  89. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/api/__init__.py +0 -0
  90. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/api/data_api.py +0 -0
  91. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/api/models_api.py +0 -0
  92. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/api/status_api.py +0 -0
  93. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/api_client.py +0 -0
  94. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/api_response.py +0 -0
  95. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/configuration.py +0 -0
  96. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/exceptions.py +0 -0
  97. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/__init__.py +0 -0
  98. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/coins.py +0 -0
  99. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/data_download_response.py +0 -0
  100. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/data_info.py +0 -0
  101. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/data_value_value_value_inner.py +0 -0
  102. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/data_version.py +0 -0
  103. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/data_version_info.py +0 -0
  104. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/download_links.py +0 -0
  105. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/evaluation.py +0 -0
  106. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/evaluation_response.py +0 -0
  107. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/exception_detail.py +0 -0
  108. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/feature_size.py +0 -0
  109. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/model.py +0 -0
  110. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/model_create.py +0 -0
  111. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/model_status.py +0 -0
  112. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/model_update.py +0 -0
  113. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/target.py +0 -0
  114. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/target_info.py +0 -0
  115. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/models/target_type.py +0 -0
  116. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/py.typed +0 -0
  117. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/client/rest.py +0 -0
  118. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/main.py +0 -0
  119. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/hive/utils.py +0 -0
  120. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/__init__.py +0 -0
  121. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/__init__.py +0 -0
  122. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api/__init__.py +0 -0
  123. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api/change_in_timeframe_api.py +0 -0
  124. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api/funding_rates_api.py +0 -0
  125. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api/ohlcv_data_api.py +0 -0
  126. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api/status_api.py +0 -0
  127. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api/symbols_api.py +0 -0
  128. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api/udf_api.py +0 -0
  129. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api_client.py +0 -0
  130. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/api_response.py +0 -0
  131. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/configuration.py +0 -0
  132. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/exceptions.py +0 -0
  133. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/__init__.py +0 -0
  134. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/change_in_timeframe.py +0 -0
  135. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/exception_detail.py +0 -0
  136. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/funding_rate.py +0 -0
  137. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/ohlcv_history.py +0 -0
  138. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/resolution.py +0 -0
  139. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/search_symbol.py +0 -0
  140. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/sort_direction.py +0 -0
  141. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/symbol_group.py +0 -0
  142. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/symbol_info.py +0 -0
  143. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/symbol_type.py +0 -0
  144. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/timeframe.py +0 -0
  145. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/models/udf_config.py +0 -0
  146. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/py.typed +0 -0
  147. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/client/rest.py +0 -0
  148. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/klines/main.py +0 -0
  149. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/__init__.py +0 -0
  150. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/__init__.py +0 -0
  151. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/__init__.py +0 -0
  152. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/exchanges_api.py +0 -0
  153. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/indicators_api.py +0 -0
  154. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/logs_api.py +0 -0
  155. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/marketcap_api.py +0 -0
  156. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/markets_api.py +0 -0
  157. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/status_api.py +0 -0
  158. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api/tokens_api.py +0 -0
  159. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api_client.py +0 -0
  160. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/api_response.py +0 -0
  161. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/configuration.py +0 -0
  162. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/exceptions.py +0 -0
  163. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/models/__init__.py +0 -0
  164. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/models/exception_detail.py +0 -0
  165. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/models/severity.py +0 -0
  166. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/models/time_interval.py +0 -0
  167. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/models/trading_status.py +0 -0
  168. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/py.typed +0 -0
  169. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/client/rest.py +0 -0
  170. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/metrics/main.py +0 -0
  171. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/__init__.py +0 -0
  172. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/__init__.py +0 -0
  173. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/api/__init__.py +0 -0
  174. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/api/now_payments_api.py +0 -0
  175. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/api/payments_api.py +0 -0
  176. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/api/products_api.py +0 -0
  177. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/api/status_api.py +0 -0
  178. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/api_client.py +0 -0
  179. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/api_response.py +0 -0
  180. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/configuration.py +0 -0
  181. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/exceptions.py +0 -0
  182. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/__init__.py +0 -0
  183. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/exception_detail.py +0 -0
  184. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/now_create_invoice_req.py +0 -0
  185. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/now_create_invoice_res.py +0 -0
  186. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/payment.py +0 -0
  187. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/payment_status.py +0 -0
  188. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/product_create.py +0 -0
  189. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/product_read.py +0 -0
  190. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/product_sub_read.py +0 -0
  191. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/product_update.py +0 -0
  192. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/provider.py +0 -0
  193. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/models/scope.py +0 -0
  194. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/py.typed +0 -0
  195. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/client/rest.py +0 -0
  196. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/pay/main.py +0 -0
  197. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/__init__.py +0 -0
  198. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/__init__.py +0 -0
  199. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/__init__.py +0 -0
  200. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/api_keys_api.py +0 -0
  201. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/bots_api.py +0 -0
  202. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/exchanges_api.py +0 -0
  203. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/futures_trading_panel_api.py +0 -0
  204. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/notifications_api.py +0 -0
  205. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/orders_api.py +0 -0
  206. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/status_api.py +0 -0
  207. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/strategies_api.py +0 -0
  208. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api/trading_actions_api.py +0 -0
  209. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api_client.py +0 -0
  210. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/api_response.py +0 -0
  211. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/configuration.py +0 -0
  212. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/exceptions.py +0 -0
  213. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/__init__.py +0 -0
  214. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/action_model.py +0 -0
  215. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/bot_model.py +0 -0
  216. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/bot_status.py +0 -0
  217. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/exception_detail.py +0 -0
  218. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/exchange_key_model.py +0 -0
  219. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/execution_ids.py +0 -0
  220. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/futures_balance.py +0 -0
  221. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/futures_trading_action.py +0 -0
  222. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/margin_mode.py +0 -0
  223. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/notification_model.py +0 -0
  224. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/order_model.py +0 -0
  225. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/order_status.py +0 -0
  226. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/post_futures_action.py +0 -0
  227. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/spot_trading_action.py +0 -0
  228. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/strategy_exchange_info.py +0 -0
  229. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/strategy_model_input.py +0 -0
  230. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/strategy_model_output.py +0 -0
  231. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/tpsl.py +0 -0
  232. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/models/trading_action_type.py +0 -0
  233. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/py.typed +0 -0
  234. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/client/rest.py +0 -0
  235. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn/trade/main.py +0 -0
  236. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn.egg-info/dependency_links.txt +0 -0
  237. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn.egg-info/entry_points.txt +0 -0
  238. {crypticorn-2.7.3 → crypticorn-2.7.4}/crypticorn.egg-info/top_level.txt +0 -0
  239. {crypticorn-2.7.3 → crypticorn-2.7.4}/requirements/extra.txt +0 -0
  240. {crypticorn-2.7.3 → crypticorn-2.7.4}/requirements/main.txt +0 -0
  241. {crypticorn-2.7.3 → crypticorn-2.7.4}/requirements/test.txt +0 -0
  242. {crypticorn-2.7.3 → crypticorn-2.7.4}/setup.cfg +0 -0
  243. {crypticorn-2.7.3 → crypticorn-2.7.4}/tests/test_auth_client.py +1 -1
  244. {crypticorn-2.7.3 → crypticorn-2.7.4}/tests/test_enums.py +0 -0
  245. {crypticorn-2.7.3 → crypticorn-2.7.4}/tests/test_errors.py +0 -0
  246. {crypticorn-2.7.3 → crypticorn-2.7.4}/tests/test_pagination.py +0 -0
@@ -0,0 +1 @@
1
+ graft crypticorn/cli/templates
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.7.3
3
+ Version: 2.7.4
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
+ License: MIT
6
7
  Project-URL: Homepage, https://crypticorn.com
7
8
  Keywords: machine learning,data science,crypto,modelling
8
9
  Classifier: Topic :: Scientific/Engineering
@@ -24,6 +25,8 @@ Requires-Dist: typing-extensions<5.0.0,>=4.7.1
24
25
  Requires-Dist: requests<3.0.0,>=2.32.0
25
26
  Requires-Dist: tqdm<5.0.0,>=4.67.0
26
27
  Provides-Extra: dev
28
+ Requires-Dist: build; extra == "dev"
29
+ Requires-Dist: twine; extra == "dev"
27
30
  Requires-Dist: streamlit; extra == "dev"
28
31
  Requires-Dist: httpx; extra == "dev"
29
32
  Requires-Dist: black; extra == "dev"
@@ -40,17 +43,12 @@ Requires-Dist: PyJWT==2.10.0; extra == "test"
40
43
  Provides-Extra: extra
41
44
  Requires-Dist: pandas<3.0.0,>=2.2.0; extra == "extra"
42
45
 
43
- # What is Crypticorn?
46
+ ## What is Crypticorn?
44
47
 
45
- Crypticorn is at the forefront of cutting-edge artificial intelligence cryptocurrency trading.
46
- Crypticorn offers AI-based solutions for both active and passive investors, including:
47
- - Prediction Dashboard with trading terminal,
48
- - AI Agents with different strategies,
49
- - DEX AI Signals for newly launched tokens,
50
- - DEX AI Bots
48
+ Crypticorn is at the forefront of cutting-edge crypto trading with Machine Learning.
51
49
 
52
- Use this API Client to contribute to the so-called Hive AI, a community driven AI Meta Model for predicting the
53
- cryptocurrency market.
50
+ Use this API Client to access valuable data sources, contribute to the Hive AI - a community driven AI Meta Model for predicting the
51
+ crypto market - and programmatically interact with the entire Crypticorn ecosystem.
54
52
 
55
53
  ## Installation
56
54
 
@@ -66,17 +64,19 @@ If you want the latest version, which could be a pre release, run:
66
64
  pip install --pre crypticorn
67
65
  ```
68
66
 
67
+ You can install extra dependencies grouped in the extras `extra` (heavy dependencies that do not come with the default version) `dev` (development) and `test` (testing). The `extra` dependencies include heavy libraries like `pandas`, which is only used in a few custom API operations (suffixed with `_fmt`), which preprocess the response data as a pandas Dataframe for convenience.
68
+
69
69
  ## Structure
70
70
 
71
71
  Our API is available as an asynchronous Python SDK. The main entry point you need is the `ApiClient` class, which you would import like this:
72
72
  ```python
73
73
  from crypticorn import ApiClient
74
74
  ```
75
- The ApiClient serves as the central interface for API operations. It instantiates multiple API wrappers corresponding to our microservices.
75
+ The ApiClient serves as the central interface for API operations. It instantiates multiple API wrappers corresponding to our micro services.
76
76
 
77
- Specific imports, such as request models, should be accessed through the appropriate submodules.
77
+ Request and response models for API operations should be accessed through the appropriate sub package.
78
78
 
79
- Note: All symbols are re-exported at the first submodule layer for convenience.
79
+ Note: All symbols are re-exported at the sub package level for convenience.
80
80
 
81
81
  ```python
82
82
  from crypticorn.trade import BotStatus
@@ -87,6 +87,10 @@ The `common` submodule contains shared classes not bound to a specific API.
87
87
  from crypticorn.common import Scope, Exchange
88
88
  ```
89
89
 
90
+ ## Authentication
91
+
92
+ To get started, [create an API key in your dashboard](https://app.crypticorn.com/account/developer). Then instantiate the `ApiClient` class with your copied key.
93
+
90
94
  ## Basic Usage
91
95
 
92
96
  ### With Async Context Protocol
@@ -131,16 +135,16 @@ print(res)
131
135
  ```
132
136
  The output would look like this:
133
137
  ```python
134
- status_code=200 headers={'Date': 'Wed, 09 Apr 2025 19:15:19 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Alt-Svc': 'h3=":443"; ma=86400', 'Server': 'cloudflare', 'Cf-Cache-Status': 'DYNAMIC', 'Content-Encoding': 'gzip', 'CF-RAY': '92dc551a687bbe5e-ZRH'} data=[ProductModel(id='67e8146e7bae32f3838fe36a', name='Awesome Product', price=5.0, scopes=None, duration=30, description='You need to buy this', is_active=True)] raw_data=b'[{"id":"67e8146e7bae32f3838fe36a","name":"Awesome Product","price":5.0,"duration":30,"description":"You need to buy this","is_active":true}]'
138
+ status_code=200 headers={'Date': 'Wed, 09 Apr 2025 19:15:19 GMT', 'Content-Type': 'application/json'} data=[ProductModel(id='67e8146e7bae32f3838fe36a', name='Awesome Product', price=5.0, scopes=None, duration=30, description='You need to buy this', is_active=True)] raw_data=b'[{"id":"67e8146e7bae32f3838fe36a","name":"Awesome Product","price":5.0,"duration":30,"description":"You need to buy this","is_active":true}]'
135
139
  ```
136
- You can then access the data of the response (as serialized output) with:
140
+ You can then access the data of the response (as serialized output (1) or as JSON string in bytes (2)) with:
137
141
  ```python
138
142
  print(res.data)
143
+ print(res.raw_data)
139
144
  ```
140
145
  On top of that you get some information about the request:
141
146
  ```python
142
147
  print(res.status_code)
143
- print(res.raw_data)
144
148
  print(res.headers)
145
149
  ```
146
150
 
@@ -163,6 +167,7 @@ This might be of use if you are testing a specific API locally.
163
167
  To override e.g. the host for the Hive client to connect to http://localhost:8000 instead of the default proxy, you would do:
164
168
  ```python
165
169
  from crypticorn.hive import Configuration as Hiveconfig
170
+ from crypticorn.common import Service
166
171
  async with ApiClient(base_url=BaseUrl.DEV) as client:
167
- client.configure(config=HiveConfig(host="http://localhost:8000"), client=client.hive)
172
+ client.configure(config=HiveConfig(host="http://localhost:8000"), client=Service.HIVE)
168
173
  ```
@@ -1,14 +1,9 @@
1
- # What is Crypticorn?
1
+ ## What is Crypticorn?
2
2
 
3
- Crypticorn is at the forefront of cutting-edge artificial intelligence cryptocurrency trading.
4
- Crypticorn offers AI-based solutions for both active and passive investors, including:
5
- - Prediction Dashboard with trading terminal,
6
- - AI Agents with different strategies,
7
- - DEX AI Signals for newly launched tokens,
8
- - DEX AI Bots
3
+ Crypticorn is at the forefront of cutting-edge crypto trading with Machine Learning.
9
4
 
10
- Use this API Client to contribute to the so-called Hive AI, a community driven AI Meta Model for predicting the
11
- cryptocurrency market.
5
+ Use this API Client to access valuable data sources, contribute to the Hive AI - a community driven AI Meta Model for predicting the
6
+ crypto market - and programmatically interact with the entire Crypticorn ecosystem.
12
7
 
13
8
  ## Installation
14
9
 
@@ -24,17 +19,19 @@ If you want the latest version, which could be a pre release, run:
24
19
  pip install --pre crypticorn
25
20
  ```
26
21
 
22
+ You can install extra dependencies grouped in the extras `extra` (heavy dependencies that do not come with the default version) `dev` (development) and `test` (testing). The `extra` dependencies include heavy libraries like `pandas`, which is only used in a few custom API operations (suffixed with `_fmt`), which preprocess the response data as a pandas Dataframe for convenience.
23
+
27
24
  ## Structure
28
25
 
29
26
  Our API is available as an asynchronous Python SDK. The main entry point you need is the `ApiClient` class, which you would import like this:
30
27
  ```python
31
28
  from crypticorn import ApiClient
32
29
  ```
33
- The ApiClient serves as the central interface for API operations. It instantiates multiple API wrappers corresponding to our microservices.
30
+ The ApiClient serves as the central interface for API operations. It instantiates multiple API wrappers corresponding to our micro services.
34
31
 
35
- Specific imports, such as request models, should be accessed through the appropriate submodules.
32
+ Request and response models for API operations should be accessed through the appropriate sub package.
36
33
 
37
- Note: All symbols are re-exported at the first submodule layer for convenience.
34
+ Note: All symbols are re-exported at the sub package level for convenience.
38
35
 
39
36
  ```python
40
37
  from crypticorn.trade import BotStatus
@@ -45,6 +42,10 @@ The `common` submodule contains shared classes not bound to a specific API.
45
42
  from crypticorn.common import Scope, Exchange
46
43
  ```
47
44
 
45
+ ## Authentication
46
+
47
+ To get started, [create an API key in your dashboard](https://app.crypticorn.com/account/developer). Then instantiate the `ApiClient` class with your copied key.
48
+
48
49
  ## Basic Usage
49
50
 
50
51
  ### With Async Context Protocol
@@ -89,16 +90,16 @@ print(res)
89
90
  ```
90
91
  The output would look like this:
91
92
  ```python
92
- status_code=200 headers={'Date': 'Wed, 09 Apr 2025 19:15:19 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Alt-Svc': 'h3=":443"; ma=86400', 'Server': 'cloudflare', 'Cf-Cache-Status': 'DYNAMIC', 'Content-Encoding': 'gzip', 'CF-RAY': '92dc551a687bbe5e-ZRH'} data=[ProductModel(id='67e8146e7bae32f3838fe36a', name='Awesome Product', price=5.0, scopes=None, duration=30, description='You need to buy this', is_active=True)] raw_data=b'[{"id":"67e8146e7bae32f3838fe36a","name":"Awesome Product","price":5.0,"duration":30,"description":"You need to buy this","is_active":true}]'
93
+ status_code=200 headers={'Date': 'Wed, 09 Apr 2025 19:15:19 GMT', 'Content-Type': 'application/json'} data=[ProductModel(id='67e8146e7bae32f3838fe36a', name='Awesome Product', price=5.0, scopes=None, duration=30, description='You need to buy this', is_active=True)] raw_data=b'[{"id":"67e8146e7bae32f3838fe36a","name":"Awesome Product","price":5.0,"duration":30,"description":"You need to buy this","is_active":true}]'
93
94
  ```
94
- You can then access the data of the response (as serialized output) with:
95
+ You can then access the data of the response (as serialized output (1) or as JSON string in bytes (2)) with:
95
96
  ```python
96
97
  print(res.data)
98
+ print(res.raw_data)
97
99
  ```
98
100
  On top of that you get some information about the request:
99
101
  ```python
100
102
  print(res.status_code)
101
- print(res.raw_data)
102
103
  print(res.headers)
103
104
  ```
104
105
 
@@ -121,6 +122,7 @@ This might be of use if you are testing a specific API locally.
121
122
  To override e.g. the host for the Hive client to connect to http://localhost:8000 instead of the default proxy, you would do:
122
123
  ```python
123
124
  from crypticorn.hive import Configuration as Hiveconfig
125
+ from crypticorn.common import Service
124
126
  async with ApiClient(base_url=BaseUrl.DEV) as client:
125
- client.configure(config=HiveConfig(host="http://localhost:8000"), client=client.hive)
127
+ client.configure(config=HiveConfig(host="http://localhost:8000"), client=Service.HIVE)
126
128
  ```
@@ -0,0 +1,33 @@
1
+ FROM python:3.11.5
2
+
3
+ # This line is used to allow the cache to be busted (only busts in CI)
4
+ ARG CACHEBUST=1
5
+ COPY ./requirements.txt /code/requirements.txt
6
+
7
+ WORKDIR /code
8
+ # set API_ENV in .env
9
+ # API_ENV=local
10
+ # add to compose file
11
+ # build:
12
+ # context: .
13
+ # dockerfile: src/api/Dockerfile
14
+ # args:
15
+ # - API_ENV=${API_ENV}
16
+ # environment:
17
+ # - API_ENV=${API_ENV}
18
+ #
19
+ # and to the workflow:
20
+ # env:
21
+ # API_ENV: ${{ github.ref == 'refs/heads/main' && 'prod' || 'dev' }}
22
+ ARG API_ENV
23
+
24
+ RUN pip install --no-cache-dir -r requirements.txt
25
+
26
+ RUN if [ "$API_ENV" != "prod" ]; then \
27
+ pip install --pre crypticorn; \
28
+ fi
29
+
30
+
31
+ COPY ./src /code/src
32
+
33
+ CMD ["uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "3000"]
@@ -0,0 +1,26 @@
1
+ # Please see the documentation for all configuration options:
2
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
3
+
4
+ version: 2
5
+ updates:
6
+ - package-ecosystem: "pip"
7
+ directory: "/" # root folder, or change if your requirements.txt is elsewhere
8
+ schedule:
9
+ interval: "weekly" # options: "daily", "weekly", "monthly"
10
+ open-pull-requests-limit: 3
11
+ labels:
12
+ - "dependencies"
13
+ rebase-strategy: "auto" # will rebase PRs if needed
14
+ ignore:
15
+ - dependency-name: "*"
16
+ update-types: ["version-update:semver-major"] # avoids risky major bumps
17
+ commit-message:
18
+ prefix: "deps"
19
+ target-branch: "dev" # ! merge to main after pr is merged
20
+ groups:
21
+ pip-dependencies:
22
+ patterns:
23
+ - "*"
24
+ update-types:
25
+ - "minor"
26
+ - "patch"
@@ -0,0 +1,12 @@
1
+ # https://docs.astral.sh/ruff/integrations/#github-actions
2
+ name: Ruff
3
+ on: [ push, pull_request ]
4
+ jobs:
5
+ ruff:
6
+ runs-on: ubuntu-latest
7
+ steps:
8
+ - uses: actions/checkout@v4
9
+ - uses: astral-sh/ruff-action@v3
10
+ with:
11
+ args: check --ignore E402 --output-format=github .
12
+ src: "./src"
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.7.3
3
+ Version: 2.7.4
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
+ License: MIT
6
7
  Project-URL: Homepage, https://crypticorn.com
7
8
  Keywords: machine learning,data science,crypto,modelling
8
9
  Classifier: Topic :: Scientific/Engineering
@@ -24,6 +25,8 @@ Requires-Dist: typing-extensions<5.0.0,>=4.7.1
24
25
  Requires-Dist: requests<3.0.0,>=2.32.0
25
26
  Requires-Dist: tqdm<5.0.0,>=4.67.0
26
27
  Provides-Extra: dev
28
+ Requires-Dist: build; extra == "dev"
29
+ Requires-Dist: twine; extra == "dev"
27
30
  Requires-Dist: streamlit; extra == "dev"
28
31
  Requires-Dist: httpx; extra == "dev"
29
32
  Requires-Dist: black; extra == "dev"
@@ -40,17 +43,12 @@ Requires-Dist: PyJWT==2.10.0; extra == "test"
40
43
  Provides-Extra: extra
41
44
  Requires-Dist: pandas<3.0.0,>=2.2.0; extra == "extra"
42
45
 
43
- # What is Crypticorn?
46
+ ## What is Crypticorn?
44
47
 
45
- Crypticorn is at the forefront of cutting-edge artificial intelligence cryptocurrency trading.
46
- Crypticorn offers AI-based solutions for both active and passive investors, including:
47
- - Prediction Dashboard with trading terminal,
48
- - AI Agents with different strategies,
49
- - DEX AI Signals for newly launched tokens,
50
- - DEX AI Bots
48
+ Crypticorn is at the forefront of cutting-edge crypto trading with Machine Learning.
51
49
 
52
- Use this API Client to contribute to the so-called Hive AI, a community driven AI Meta Model for predicting the
53
- cryptocurrency market.
50
+ Use this API Client to access valuable data sources, contribute to the Hive AI - a community driven AI Meta Model for predicting the
51
+ crypto market - and programmatically interact with the entire Crypticorn ecosystem.
54
52
 
55
53
  ## Installation
56
54
 
@@ -66,17 +64,19 @@ If you want the latest version, which could be a pre release, run:
66
64
  pip install --pre crypticorn
67
65
  ```
68
66
 
67
+ You can install extra dependencies grouped in the extras `extra` (heavy dependencies that do not come with the default version) `dev` (development) and `test` (testing). The `extra` dependencies include heavy libraries like `pandas`, which is only used in a few custom API operations (suffixed with `_fmt`), which preprocess the response data as a pandas Dataframe for convenience.
68
+
69
69
  ## Structure
70
70
 
71
71
  Our API is available as an asynchronous Python SDK. The main entry point you need is the `ApiClient` class, which you would import like this:
72
72
  ```python
73
73
  from crypticorn import ApiClient
74
74
  ```
75
- The ApiClient serves as the central interface for API operations. It instantiates multiple API wrappers corresponding to our microservices.
75
+ The ApiClient serves as the central interface for API operations. It instantiates multiple API wrappers corresponding to our micro services.
76
76
 
77
- Specific imports, such as request models, should be accessed through the appropriate submodules.
77
+ Request and response models for API operations should be accessed through the appropriate sub package.
78
78
 
79
- Note: All symbols are re-exported at the first submodule layer for convenience.
79
+ Note: All symbols are re-exported at the sub package level for convenience.
80
80
 
81
81
  ```python
82
82
  from crypticorn.trade import BotStatus
@@ -87,6 +87,10 @@ The `common` submodule contains shared classes not bound to a specific API.
87
87
  from crypticorn.common import Scope, Exchange
88
88
  ```
89
89
 
90
+ ## Authentication
91
+
92
+ To get started, [create an API key in your dashboard](https://app.crypticorn.com/account/developer). Then instantiate the `ApiClient` class with your copied key.
93
+
90
94
  ## Basic Usage
91
95
 
92
96
  ### With Async Context Protocol
@@ -131,16 +135,16 @@ print(res)
131
135
  ```
132
136
  The output would look like this:
133
137
  ```python
134
- status_code=200 headers={'Date': 'Wed, 09 Apr 2025 19:15:19 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Alt-Svc': 'h3=":443"; ma=86400', 'Server': 'cloudflare', 'Cf-Cache-Status': 'DYNAMIC', 'Content-Encoding': 'gzip', 'CF-RAY': '92dc551a687bbe5e-ZRH'} data=[ProductModel(id='67e8146e7bae32f3838fe36a', name='Awesome Product', price=5.0, scopes=None, duration=30, description='You need to buy this', is_active=True)] raw_data=b'[{"id":"67e8146e7bae32f3838fe36a","name":"Awesome Product","price":5.0,"duration":30,"description":"You need to buy this","is_active":true}]'
138
+ status_code=200 headers={'Date': 'Wed, 09 Apr 2025 19:15:19 GMT', 'Content-Type': 'application/json'} data=[ProductModel(id='67e8146e7bae32f3838fe36a', name='Awesome Product', price=5.0, scopes=None, duration=30, description='You need to buy this', is_active=True)] raw_data=b'[{"id":"67e8146e7bae32f3838fe36a","name":"Awesome Product","price":5.0,"duration":30,"description":"You need to buy this","is_active":true}]'
135
139
  ```
136
- You can then access the data of the response (as serialized output) with:
140
+ You can then access the data of the response (as serialized output (1) or as JSON string in bytes (2)) with:
137
141
  ```python
138
142
  print(res.data)
143
+ print(res.raw_data)
139
144
  ```
140
145
  On top of that you get some information about the request:
141
146
  ```python
142
147
  print(res.status_code)
143
- print(res.raw_data)
144
148
  print(res.headers)
145
149
  ```
146
150
 
@@ -163,6 +167,7 @@ This might be of use if you are testing a specific API locally.
163
167
  To override e.g. the host for the Hive client to connect to http://localhost:8000 instead of the default proxy, you would do:
164
168
  ```python
165
169
  from crypticorn.hive import Configuration as Hiveconfig
170
+ from crypticorn.common import Service
166
171
  async with ApiClient(base_url=BaseUrl.DEV) as client:
167
- client.configure(config=HiveConfig(host="http://localhost:8000"), client=client.hive)
172
+ client.configure(config=HiveConfig(host="http://localhost:8000"), client=Service.HIVE)
168
173
  ```
@@ -1,3 +1,4 @@
1
+ MANIFEST.in
1
2
  README.md
2
3
  pyproject.toml
3
4
  crypticorn/__init__.py
@@ -66,8 +67,11 @@ crypticorn/auth/client/models/whoami200_response.py
66
67
  crypticorn/cli/__init__.py
67
68
  crypticorn/cli/__main__.py
68
69
  crypticorn/cli/init.py
70
+ crypticorn/cli/templates/Dockerfile
69
71
  crypticorn/cli/templates/__init__.py
70
72
  crypticorn/cli/templates/auth.py
73
+ crypticorn/cli/templates/dependabot.yml
74
+ crypticorn/cli/templates/ruff.yml
71
75
  crypticorn/common/__init__.py
72
76
  crypticorn/common/auth.py
73
77
  crypticorn/common/decorators.py
@@ -10,6 +10,8 @@ requests<3.0.0,>=2.32.0
10
10
  tqdm<5.0.0,>=4.67.0
11
11
 
12
12
  [dev]
13
+ build
14
+ twine
13
15
  streamlit
14
16
  httpx
15
17
  black
@@ -2,9 +2,10 @@
2
2
  name = "crypticorn"
3
3
  description = "Maximise Your Crypto Trading Profits with Machine Learning"
4
4
  readme = "README.md"
5
+ license = {text = "MIT"}
5
6
  requires-python = ">=3.10"
6
7
  authors = [{name = "Crypticorn", email = "timon@crypticorn.com"}]
7
- version = "2.7.3"
8
+ version = "2.7.4"
8
9
  keywords = ["machine learning", "data science", "crypto", "modelling"]
9
10
  dynamic = ["dependencies", "optional-dependencies"]
10
11
 
@@ -1,3 +1,5 @@
1
+ build
2
+ twine
1
3
  streamlit
2
4
  httpx
3
5
  black
@@ -2,7 +2,7 @@ import pytest
2
2
  import pytest_asyncio
3
3
  from crypticorn import ApiClient
4
4
  from crypticorn.common import BaseUrl, apikey_header, Service
5
- from tests.envs import *
5
+ from tests.envs import FULL_SCOPE_API_KEY
6
6
  from crypticorn.hive import Configuration as HiveConfig
7
7
 
8
8
 
@@ -264,11 +264,6 @@ class ApiError(ExcludeEnumMixin, Enum, metaclass=ApiErrorFallback):
264
264
  ApiErrorType.USER_ERROR,
265
265
  ApiErrorLevel.ERROR,
266
266
  )
267
- INVALID_MODEL_NAME = (
268
- ApiErrorIdentifier.INVALID_MODEL_NAME,
269
- ApiErrorType.USER_ERROR,
270
- ApiErrorLevel.ERROR,
271
- )
272
267
  INSUFFICIENT_SCOPES = (
273
268
  ApiErrorIdentifier.INSUFFICIENT_SCOPES,
274
269
  ApiErrorType.USER_ERROR,
@@ -304,6 +299,11 @@ class ApiError(ExcludeEnumMixin, Enum, metaclass=ApiErrorFallback):
304
299
  ApiErrorType.SERVER_ERROR,
305
300
  ApiErrorLevel.ERROR,
306
301
  )
302
+ INVALID_MODEL_NAME = (
303
+ ApiErrorIdentifier.INVALID_MODEL_NAME,
304
+ ApiErrorType.USER_ERROR,
305
+ ApiErrorLevel.ERROR,
306
+ )
307
307
  INVALID_PARAMETER = (
308
308
  ApiErrorIdentifier.INVALID_PARAMETER,
309
309
  ApiErrorType.SERVER_ERROR,