crypticorn 2.11.7__tar.gz → 2.11.8__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 (303) hide show
  1. {crypticorn-2.11.7 → crypticorn-2.11.8}/CHANGELOG.md +8 -0
  2. {crypticorn-2.11.7/crypticorn.egg-info → crypticorn-2.11.8}/PKG-INFO +1 -1
  3. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/errors.py +11 -0
  4. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/strategies_api.py +6 -6
  5. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/order.py +30 -28
  6. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/strategy.py +9 -0
  7. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/strategy_create.py +10 -1
  8. {crypticorn-2.11.7 → crypticorn-2.11.8/crypticorn.egg-info}/PKG-INFO +1 -1
  9. {crypticorn-2.11.7 → crypticorn-2.11.8}/pyproject.toml +1 -1
  10. {crypticorn-2.11.7 → crypticorn-2.11.8}/LICENSE +0 -0
  11. {crypticorn-2.11.7 → crypticorn-2.11.8}/MANIFEST.in +0 -0
  12. {crypticorn-2.11.7 → crypticorn-2.11.8}/README.md +0 -0
  13. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/__init__.py +0 -0
  14. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/__init__.py +0 -0
  15. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/__init__.py +0 -0
  16. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api/__init__.py +0 -0
  17. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api/admin_api.py +0 -0
  18. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api/auth_api.py +0 -0
  19. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api/service_api.py +0 -0
  20. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api/user_api.py +0 -0
  21. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api/wallet_api.py +0 -0
  22. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api_client.py +0 -0
  23. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/api_response.py +0 -0
  24. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/configuration.py +0 -0
  25. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/exceptions.py +0 -0
  26. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/__init__.py +0 -0
  27. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/add_wallet200_response.py +0 -0
  28. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/add_wallet_request.py +0 -0
  29. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/authorize_user200_response.py +0 -0
  30. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/authorize_user200_response_auth.py +0 -0
  31. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/authorize_user_request.py +0 -0
  32. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/create_api_key200_response.py +0 -0
  33. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/create_api_key_request.py +0 -0
  34. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/create_user_request.py +0 -0
  35. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/get_api_keys200_response_inner.py +0 -0
  36. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/list_wallets200_response.py +0 -0
  37. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner.py +0 -0
  38. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +0 -0
  39. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +0 -0
  40. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +0 -0
  41. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/list_wallets200_response_data_inner.py +0 -0
  42. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/list_wallets200_response_user_value.py +0 -0
  43. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/logout_default_response.py +0 -0
  44. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/logout_default_response_issues_inner.py +0 -0
  45. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/oauth_callback200_response.py +0 -0
  46. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/oauth_callback200_response_user.py +0 -0
  47. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/refresh_token_info200_response.py +0 -0
  48. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +0 -0
  49. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/resend_verification_email_request.py +0 -0
  50. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/revoke_user_tokens_request.py +0 -0
  51. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/rotate_tokens200_response.py +0 -0
  52. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/token_info200_response.py +0 -0
  53. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/unlink_wallet_request.py +0 -0
  54. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/update_user_request.py +0 -0
  55. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/user_by_username200_response.py +0 -0
  56. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/user_reset_password_request.py +0 -0
  57. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/user_set_password_request.py +0 -0
  58. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/verify200_response.py +0 -0
  59. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/verify_email200_response.py +0 -0
  60. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/verify_email200_response_auth.py +0 -0
  61. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/verify_email200_response_auth_auth.py +0 -0
  62. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/verify_email_request.py +0 -0
  63. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/verify_wallet_request.py +0 -0
  64. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/wallet_verified200_response.py +0 -0
  65. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/models/whoami200_response.py +0 -0
  66. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/py.typed +0 -0
  67. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/client/rest.py +0 -0
  68. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/auth/main.py +0 -0
  69. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/__init__.py +0 -0
  70. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/__main__.py +0 -0
  71. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/init.py +0 -0
  72. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/templates/Dockerfile +0 -0
  73. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/templates/__init__.py +0 -0
  74. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/templates/auth.py +0 -0
  75. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/templates/dependabot.yml +0 -0
  76. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/templates/merge-env.sh +0 -0
  77. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/templates/ruff.yml +0 -0
  78. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/cli/version.py +0 -0
  79. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/client.py +0 -0
  80. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/__init__.py +0 -0
  81. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/ansi_colors.py +0 -0
  82. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/auth.py +0 -0
  83. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/decorators.py +0 -0
  84. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/enums.py +0 -0
  85. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/exceptions.py +0 -0
  86. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/logging.py +0 -0
  87. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/middleware.py +0 -0
  88. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/mixins.py +0 -0
  89. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/openapi.py +0 -0
  90. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/pagination.py +0 -0
  91. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/router/admin_router.py +0 -0
  92. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/router/status_router.py +0 -0
  93. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/scopes.py +0 -0
  94. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/urls.py +0 -0
  95. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/utils.py +0 -0
  96. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/common/warnings.py +0 -0
  97. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/__init__.py +0 -0
  98. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/__init__.py +0 -0
  99. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/api/__init__.py +0 -0
  100. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/api/admin_api.py +0 -0
  101. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/api/data_api.py +0 -0
  102. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/api/models_api.py +0 -0
  103. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/api/status_api.py +0 -0
  104. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/api_client.py +0 -0
  105. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/api_response.py +0 -0
  106. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/configuration.py +0 -0
  107. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/exceptions.py +0 -0
  108. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/__init__.py +0 -0
  109. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/api_error_identifier.py +0 -0
  110. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/api_error_level.py +0 -0
  111. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/api_error_type.py +0 -0
  112. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/coins.py +0 -0
  113. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/data_download_response.py +0 -0
  114. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/data_info.py +0 -0
  115. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/data_options.py +0 -0
  116. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/data_version.py +0 -0
  117. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/data_version_info.py +0 -0
  118. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/download_links.py +0 -0
  119. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/evaluation.py +0 -0
  120. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/evaluation_response.py +0 -0
  121. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/exception_detail.py +0 -0
  122. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/feature_size.py +0 -0
  123. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/log_level.py +0 -0
  124. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/model_create.py +0 -0
  125. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/model_read.py +0 -0
  126. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/model_status.py +0 -0
  127. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/model_update.py +0 -0
  128. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/target.py +0 -0
  129. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/target_info.py +0 -0
  130. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/models/target_type.py +0 -0
  131. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/py.typed +0 -0
  132. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/client/rest.py +0 -0
  133. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/main.py +0 -0
  134. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/hive/utils.py +0 -0
  135. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/__init__.py +0 -0
  136. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/__init__.py +0 -0
  137. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/__init__.py +0 -0
  138. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/admin_api.py +0 -0
  139. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/change_in_timeframe_api.py +0 -0
  140. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/funding_rates_api.py +0 -0
  141. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/ohlcv_data_api.py +0 -0
  142. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/status_api.py +0 -0
  143. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/symbols_api.py +0 -0
  144. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api/udf_api.py +0 -0
  145. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api_client.py +0 -0
  146. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/api_response.py +0 -0
  147. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/configuration.py +0 -0
  148. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/exceptions.py +0 -0
  149. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/__init__.py +0 -0
  150. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/api_error_identifier.py +0 -0
  151. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/api_error_level.py +0 -0
  152. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/api_error_type.py +0 -0
  153. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/change_in_timeframe.py +0 -0
  154. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/exception_detail.py +0 -0
  155. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/funding_rate.py +0 -0
  156. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/funding_rate_response.py +0 -0
  157. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/internal_exchange.py +0 -0
  158. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/log_level.py +0 -0
  159. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/market_type.py +0 -0
  160. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/ohlcv.py +0 -0
  161. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/resolution.py +0 -0
  162. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/search_symbol.py +0 -0
  163. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/sort_direction.py +0 -0
  164. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/symbol_group.py +0 -0
  165. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/symbol_info.py +0 -0
  166. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/symbol_type.py +0 -0
  167. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/timeframe.py +0 -0
  168. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/models/udf_config.py +0 -0
  169. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/py.typed +0 -0
  170. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/client/rest.py +0 -0
  171. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/klines/main.py +0 -0
  172. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/__init__.py +0 -0
  173. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/__init__.py +0 -0
  174. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/__init__.py +0 -0
  175. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/admin_api.py +0 -0
  176. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/exchanges_api.py +0 -0
  177. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/indicators_api.py +0 -0
  178. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/logs_api.py +0 -0
  179. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/marketcap_api.py +0 -0
  180. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/markets_api.py +0 -0
  181. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/quote_currencies_api.py +0 -0
  182. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/status_api.py +0 -0
  183. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api/tokens_api.py +0 -0
  184. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api_client.py +0 -0
  185. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/api_response.py +0 -0
  186. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/configuration.py +0 -0
  187. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/exceptions.py +0 -0
  188. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/__init__.py +0 -0
  189. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/api_error_identifier.py +0 -0
  190. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/api_error_level.py +0 -0
  191. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/api_error_type.py +0 -0
  192. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/exception_detail.py +0 -0
  193. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/exchange_availability.py +0 -0
  194. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/exchange_mapping.py +0 -0
  195. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/internal_exchange.py +0 -0
  196. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/log_level.py +0 -0
  197. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/market_type.py +0 -0
  198. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/marketcap_ranking.py +0 -0
  199. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/marketcap_symbol_ranking.py +0 -0
  200. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/ohlcv.py +0 -0
  201. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/severity.py +0 -0
  202. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/time_interval.py +0 -0
  203. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/models/trading_status.py +0 -0
  204. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/py.typed +0 -0
  205. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/client/rest.py +0 -0
  206. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/metrics/main.py +0 -0
  207. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/__init__.py +0 -0
  208. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/__init__.py +0 -0
  209. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api/__init__.py +0 -0
  210. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api/admin_api.py +0 -0
  211. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api/now_payments_api.py +0 -0
  212. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api/payments_api.py +0 -0
  213. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api/products_api.py +0 -0
  214. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api/status_api.py +0 -0
  215. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api_client.py +0 -0
  216. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/api_response.py +0 -0
  217. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/configuration.py +0 -0
  218. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/exceptions.py +0 -0
  219. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/__init__.py +0 -0
  220. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/exception_detail.py +0 -0
  221. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/log_level.py +0 -0
  222. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/now_create_invoice_req.py +0 -0
  223. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/now_create_invoice_res.py +0 -0
  224. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/payment.py +0 -0
  225. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/payment_status.py +0 -0
  226. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/product_create.py +0 -0
  227. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/product_read.py +0 -0
  228. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/product_sub_read.py +0 -0
  229. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/product_update.py +0 -0
  230. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/provider.py +0 -0
  231. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/response_getuptime.py +0 -0
  232. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/models/scope.py +0 -0
  233. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/py.typed +0 -0
  234. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/client/rest.py +0 -0
  235. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/pay/main.py +0 -0
  236. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/__init__.py +0 -0
  237. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/__init__.py +0 -0
  238. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/__init__.py +0 -0
  239. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/admin_api.py +0 -0
  240. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/api_keys_api.py +0 -0
  241. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/bots_api.py +0 -0
  242. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/exchanges_api.py +0 -0
  243. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/futures_trading_panel_api.py +0 -0
  244. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/notifications_api.py +0 -0
  245. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/orders_api.py +0 -0
  246. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/status_api.py +0 -0
  247. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api/trading_actions_api.py +0 -0
  248. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api_client.py +0 -0
  249. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/api_response.py +0 -0
  250. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/configuration.py +0 -0
  251. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/exceptions.py +0 -0
  252. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/__init__.py +0 -0
  253. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/api_error_identifier.py +0 -0
  254. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/api_error_level.py +0 -0
  255. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/api_error_type.py +0 -0
  256. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/bot.py +0 -0
  257. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/bot_create.py +0 -0
  258. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/bot_status.py +0 -0
  259. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/bot_update.py +0 -0
  260. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/exception_detail.py +0 -0
  261. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/exchange.py +0 -0
  262. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/exchange_key.py +0 -0
  263. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/exchange_key_create.py +0 -0
  264. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/exchange_key_update.py +0 -0
  265. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/execution_ids.py +0 -0
  266. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/futures_balance.py +0 -0
  267. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/futures_trading_action.py +0 -0
  268. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/futures_trading_action_create.py +0 -0
  269. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/log_level.py +0 -0
  270. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/margin_mode.py +0 -0
  271. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/market_type.py +0 -0
  272. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/notification.py +0 -0
  273. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/notification_create.py +0 -0
  274. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/notification_update.py +0 -0
  275. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/order_status.py +0 -0
  276. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/post_futures_action.py +0 -0
  277. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/spot_trading_action_create.py +0 -0
  278. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/strategy_exchange_info.py +0 -0
  279. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/strategy_update.py +0 -0
  280. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/tpsl.py +0 -0
  281. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/models/trading_action_type.py +0 -0
  282. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/py.typed +0 -0
  283. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/client/rest.py +0 -0
  284. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn/trade/main.py +0 -0
  285. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn.egg-info/SOURCES.txt +0 -0
  286. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn.egg-info/dependency_links.txt +0 -0
  287. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn.egg-info/entry_points.txt +0 -0
  288. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn.egg-info/requires.txt +0 -0
  289. {crypticorn-2.11.7 → crypticorn-2.11.8}/crypticorn.egg-info/top_level.txt +0 -0
  290. {crypticorn-2.11.7 → crypticorn-2.11.8}/requirements/dev.txt +0 -0
  291. {crypticorn-2.11.7 → crypticorn-2.11.8}/requirements/extra.txt +0 -0
  292. {crypticorn-2.11.7 → crypticorn-2.11.8}/requirements/main.txt +0 -0
  293. {crypticorn-2.11.7 → crypticorn-2.11.8}/requirements/test.txt +0 -0
  294. {crypticorn-2.11.7 → crypticorn-2.11.8}/setup.cfg +0 -0
  295. {crypticorn-2.11.7 → crypticorn-2.11.8}/static/favicon.svg +0 -0
  296. {crypticorn-2.11.7 → crypticorn-2.11.8}/static/logo.svg +0 -0
  297. {crypticorn-2.11.7 → crypticorn-2.11.8}/static/pip-structure.drawio +0 -0
  298. {crypticorn-2.11.7 → crypticorn-2.11.8}/static/pip-structure.svg +0 -0
  299. {crypticorn-2.11.7 → crypticorn-2.11.8}/tests/test_auth_client.py +0 -0
  300. {crypticorn-2.11.7 → crypticorn-2.11.8}/tests/test_config.py +0 -0
  301. {crypticorn-2.11.7 → crypticorn-2.11.8}/tests/test_enums.py +0 -0
  302. {crypticorn-2.11.7 → crypticorn-2.11.8}/tests/test_errors.py +0 -0
  303. {crypticorn-2.11.7 → crypticorn-2.11.8}/tests/test_pagination.py +0 -0
@@ -1,6 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v2.11.8 (2025-05-18)
5
+
6
+ ### Bug Fixes
7
+
8
+ - New error code `object_locked`
9
+ ([`d2c79a1`](https://github.com/crypticorn-ai/api-client/commit/d2c79a1c8e77c5801981b5fe2c4f0c99d9ef0943))
10
+
11
+
4
12
  ## v2.11.7 (2025-05-18)
5
13
 
6
14
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.11.7
3
+ Version: 2.11.8
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License-Expression: MIT
@@ -74,6 +74,7 @@ class ApiErrorIdentifier(StrEnum):
74
74
  OBJECT_ALREADY_EXISTS = "object_already_exists"
75
75
  OBJECT_CREATED = "object_created"
76
76
  OBJECT_DELETED = "object_deleted"
77
+ OBJECT_LOCKED = "object_locked"
77
78
  OBJECT_NOT_FOUND = "object_not_found"
78
79
  OBJECT_UPDATED = "object_updated"
79
80
  ORDER_ALREADY_FILLED = "order_is_already_filled"
@@ -362,6 +363,11 @@ class ApiError(Enum, metaclass=ApiErrorFallback):
362
363
  ApiErrorType.SERVER_ERROR,
363
364
  ApiErrorLevel.INFO,
364
365
  )
366
+ OBJECT_LOCKED = (
367
+ ApiErrorIdentifier.OBJECT_LOCKED,
368
+ ApiErrorType.NO_ERROR,
369
+ ApiErrorLevel.INFO,
370
+ )
365
371
  OBJECT_NOT_FOUND = (
366
372
  ApiErrorIdentifier.OBJECT_NOT_FOUND,
367
373
  ApiErrorType.SERVER_ERROR,
@@ -842,6 +848,11 @@ class StatusCodeMapper:
842
848
  status.HTTP_204_NO_CONTENT,
843
849
  status.WS_1000_NORMAL_CLOSURE,
844
850
  ),
851
+ # Miscellaneous
852
+ ApiError.OBJECT_LOCKED: (
853
+ status.HTTP_423_LOCKED,
854
+ status.WS_1013_TRY_AGAIN_LATER,
855
+ ),
845
856
  }
846
857
 
847
858
  @classmethod
@@ -17,7 +17,7 @@ from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
19
  from pydantic import StrictInt, StrictStr
20
- from typing import Any, List, Optional
20
+ from typing import List, Optional
21
21
  from crypticorn.trade.client.models.strategy import Strategy
22
22
  from crypticorn.trade.client.models.strategy_create import StrategyCreate
23
23
  from crypticorn.trade.client.models.strategy_update import StrategyUpdate
@@ -561,7 +561,7 @@ class StrategiesApi:
561
561
  _content_type: Optional[StrictStr] = None,
562
562
  _headers: Optional[Dict[StrictStr, Any]] = None,
563
563
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
564
- ) -> object:
564
+ ) -> None:
565
565
  """Kill Strategy
566
566
 
567
567
  Kills a strategy by disabling it and deleting all bots associated with it.
@@ -599,7 +599,7 @@ class StrategiesApi:
599
599
  )
600
600
 
601
601
  _response_types_map: Dict[str, Optional[str]] = {
602
- "200": "object",
602
+ "204": None,
603
603
  }
604
604
  response_data = await self.api_client.call_api(
605
605
  *_param, _request_timeout=_request_timeout
@@ -625,7 +625,7 @@ class StrategiesApi:
625
625
  _content_type: Optional[StrictStr] = None,
626
626
  _headers: Optional[Dict[StrictStr, Any]] = None,
627
627
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
628
- ) -> ApiResponse[object]:
628
+ ) -> ApiResponse[None]:
629
629
  """Kill Strategy
630
630
 
631
631
  Kills a strategy by disabling it and deleting all bots associated with it.
@@ -663,7 +663,7 @@ class StrategiesApi:
663
663
  )
664
664
 
665
665
  _response_types_map: Dict[str, Optional[str]] = {
666
- "200": "object",
666
+ "204": None,
667
667
  }
668
668
  response_data = await self.api_client.call_api(
669
669
  *_param, _request_timeout=_request_timeout
@@ -727,7 +727,7 @@ class StrategiesApi:
727
727
  )
728
728
 
729
729
  _response_types_map: Dict[str, Optional[str]] = {
730
- "200": "object",
730
+ "204": None,
731
731
  }
732
732
  response_data = await self.api_client.call_api(
733
733
  *_param, _request_timeout=_request_timeout
@@ -19,6 +19,7 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from typing_extensions import Annotated
22
23
  from crypticorn.trade.client.models.api_error_identifier import ApiErrorIdentifier
23
24
  from crypticorn.trade.client.models.exchange import Exchange
24
25
  from crypticorn.trade.client.models.margin_mode import MarginMode
@@ -60,14 +61,31 @@ class Order(BaseModel):
60
61
  margin_mode: Optional[MarginMode] = None
61
62
  status_code: Optional[ApiErrorIdentifier] = None
62
63
  status: Optional[OrderStatus] = None
63
- filled_perc: Optional[Union[StrictFloat, StrictInt]] = None
64
- filled_qty: Optional[Union[StrictFloat, StrictInt]] = None
65
- fee: Optional[Union[StrictFloat, StrictInt]] = None
64
+ filled_perc: Optional[
65
+ Union[
66
+ Annotated[float, Field(le=1.0, strict=True, ge=0.0)],
67
+ Annotated[int, Field(le=1, strict=True, ge=0)],
68
+ ]
69
+ ] = Field(default=0, description="Percentage of the order filled")
70
+ filled_qty: Optional[
71
+ Union[
72
+ Annotated[float, Field(strict=True, ge=0.0)],
73
+ Annotated[int, Field(strict=True, ge=0)],
74
+ ]
75
+ ] = Field(
76
+ default=0,
77
+ description="Quantity filled. Needed for pnl calculation. In the symbol's base currency.",
78
+ )
79
+ fee: Optional[Union[StrictFloat, StrictInt]] = Field(
80
+ default=0, description="Fees for the order"
81
+ )
66
82
  leverage: Optional[Union[StrictFloat, StrictInt]] = None
67
83
  order_details: Optional[Any] = Field(
68
84
  default=None, description="Exchange specific details of the order"
69
85
  )
70
- pnl: Optional[Union[StrictFloat, StrictInt]] = None
86
+ pnl: Optional[Union[StrictFloat, StrictInt]] = Field(
87
+ default=0, description="Profit and loss for the order"
88
+ )
71
89
  order_time: Optional[StrictInt] = None
72
90
  __properties: ClassVar[List[str]] = [
73
91
  "id",
@@ -230,21 +248,6 @@ class Order(BaseModel):
230
248
  if self.status is None and "status" in self.model_fields_set:
231
249
  _dict["status"] = None
232
250
 
233
- # set to None if filled_perc (nullable) is None
234
- # and model_fields_set contains the field
235
- if self.filled_perc is None and "filled_perc" in self.model_fields_set:
236
- _dict["filled_perc"] = None
237
-
238
- # set to None if filled_qty (nullable) is None
239
- # and model_fields_set contains the field
240
- if self.filled_qty is None and "filled_qty" in self.model_fields_set:
241
- _dict["filled_qty"] = None
242
-
243
- # set to None if fee (nullable) is None
244
- # and model_fields_set contains the field
245
- if self.fee is None and "fee" in self.model_fields_set:
246
- _dict["fee"] = None
247
-
248
251
  # set to None if leverage (nullable) is None
249
252
  # and model_fields_set contains the field
250
253
  if self.leverage is None and "leverage" in self.model_fields_set:
@@ -255,11 +258,6 @@ class Order(BaseModel):
255
258
  if self.order_details is None and "order_details" in self.model_fields_set:
256
259
  _dict["order_details"] = None
257
260
 
258
- # set to None if pnl (nullable) is None
259
- # and model_fields_set contains the field
260
- if self.pnl is None and "pnl" in self.model_fields_set:
261
- _dict["pnl"] = None
262
-
263
261
  # set to None if order_time (nullable) is None
264
262
  # and model_fields_set contains the field
265
263
  if self.order_time is None and "order_time" in self.model_fields_set:
@@ -298,16 +296,20 @@ class Order(BaseModel):
298
296
  "margin_mode": obj.get("margin_mode"),
299
297
  "status_code": obj.get("status_code"),
300
298
  "status": obj.get("status"),
301
- "filled_perc": obj.get("filled_perc"),
302
- "filled_qty": obj.get("filled_qty"),
303
- "fee": obj.get("fee"),
299
+ "filled_perc": (
300
+ obj.get("filled_perc") if obj.get("filled_perc") is not None else 0
301
+ ),
302
+ "filled_qty": (
303
+ obj.get("filled_qty") if obj.get("filled_qty") is not None else 0
304
+ ),
305
+ "fee": obj.get("fee") if obj.get("fee") is not None else 0,
304
306
  "leverage": obj.get("leverage"),
305
307
  "order_details": (
306
308
  AnyOf.from_dict(obj["order_details"])
307
309
  if obj.get("order_details") is not None
308
310
  else None
309
311
  ),
310
- "pnl": obj.get("pnl"),
312
+ "pnl": obj.get("pnl") if obj.get("pnl") is not None else 0,
311
313
  "order_time": obj.get("order_time"),
312
314
  }
313
315
  )
@@ -20,6 +20,7 @@ import json
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
22
  from typing_extensions import Annotated
23
+ from crypticorn.trade.client.models.margin_mode import MarginMode
23
24
  from crypticorn.trade.client.models.market_type import MarketType
24
25
  from crypticorn.trade.client.models.strategy_exchange_info import StrategyExchangeInfo
25
26
  from typing import Optional, Set
@@ -55,6 +56,7 @@ class Strategy(BaseModel):
55
56
  identifier: StrictStr = Field(
56
57
  description="Unique human readable identifier for the strategy e.g. 'daily_trend_momentum'"
57
58
  )
59
+ margin_mode: Optional[MarginMode] = None
58
60
  leverage: StrictInt = Field(description="Leverage for the strategy")
59
61
  market_type: MarketType = Field(description="Market of operation of the strategy")
60
62
  __properties: ClassVar[List[str]] = [
@@ -67,6 +69,7 @@ class Strategy(BaseModel):
67
69
  "enabled",
68
70
  "performance_fee",
69
71
  "identifier",
72
+ "margin_mode",
70
73
  "leverage",
71
74
  "market_type",
72
75
  ]
@@ -115,6 +118,11 @@ class Strategy(BaseModel):
115
118
  if _item_exchanges:
116
119
  _items.append(_item_exchanges.to_dict())
117
120
  _dict["exchanges"] = _items
121
+ # set to None if margin_mode (nullable) is None
122
+ # and model_fields_set contains the field
123
+ if self.margin_mode is None and "margin_mode" in self.model_fields_set:
124
+ _dict["margin_mode"] = None
125
+
118
126
  return _dict
119
127
 
120
128
  @classmethod
@@ -144,6 +152,7 @@ class Strategy(BaseModel):
144
152
  "enabled": obj.get("enabled"),
145
153
  "performance_fee": obj.get("performance_fee"),
146
154
  "identifier": obj.get("identifier"),
155
+ "margin_mode": obj.get("margin_mode"),
147
156
  "leverage": obj.get("leverage"),
148
157
  "market_type": obj.get("market_type"),
149
158
  }
@@ -18,8 +18,9 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
21
- from typing import Any, ClassVar, Dict, List, Union
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
22
  from typing_extensions import Annotated
23
+ from crypticorn.trade.client.models.margin_mode import MarginMode
23
24
  from crypticorn.trade.client.models.market_type import MarketType
24
25
  from crypticorn.trade.client.models.strategy_exchange_info import StrategyExchangeInfo
25
26
  from typing import Optional, Set
@@ -46,6 +47,7 @@ class StrategyCreate(BaseModel):
46
47
  identifier: StrictStr = Field(
47
48
  description="Unique human readable identifier for the strategy e.g. 'daily_trend_momentum'"
48
49
  )
50
+ margin_mode: Optional[MarginMode] = None
49
51
  leverage: StrictInt = Field(description="Leverage for the strategy")
50
52
  market_type: MarketType = Field(description="Market of operation of the strategy")
51
53
  __properties: ClassVar[List[str]] = [
@@ -55,6 +57,7 @@ class StrategyCreate(BaseModel):
55
57
  "enabled",
56
58
  "performance_fee",
57
59
  "identifier",
60
+ "margin_mode",
58
61
  "leverage",
59
62
  "market_type",
60
63
  ]
@@ -103,6 +106,11 @@ class StrategyCreate(BaseModel):
103
106
  if _item_exchanges:
104
107
  _items.append(_item_exchanges.to_dict())
105
108
  _dict["exchanges"] = _items
109
+ # set to None if margin_mode (nullable) is None
110
+ # and model_fields_set contains the field
111
+ if self.margin_mode is None and "margin_mode" in self.model_fields_set:
112
+ _dict["margin_mode"] = None
113
+
106
114
  return _dict
107
115
 
108
116
  @classmethod
@@ -129,6 +137,7 @@ class StrategyCreate(BaseModel):
129
137
  "enabled": obj.get("enabled"),
130
138
  "performance_fee": obj.get("performance_fee"),
131
139
  "identifier": obj.get("identifier"),
140
+ "margin_mode": obj.get("margin_mode"),
132
141
  "leverage": obj.get("leverage"),
133
142
  "market_type": obj.get("market_type"),
134
143
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.11.7
3
+ Version: 2.11.8
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License-Expression: MIT
@@ -5,7 +5,7 @@ readme = "README.md"
5
5
  license = "MIT"
6
6
  requires-python = ">=3.9"
7
7
  authors = [{name = "Crypticorn", email = "timon@crypticorn.com"}]
8
- version = "2.11.7"
8
+ version = "2.11.8"
9
9
  keywords = ["machine learning", "data science", "crypto", "modelling"]
10
10
  dynamic = ["dependencies", "optional-dependencies"]
11
11
 
File without changes
File without changes
File without changes