crypticorn 2.14.0__tar.gz → 2.15.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {crypticorn-2.14.0 → crypticorn-2.15.0}/CHANGELOG.md +8 -0
- {crypticorn-2.14.0/crypticorn.egg-info → crypticorn-2.15.0}/PKG-INFO +1 -1
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/auth.py +1 -6
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/client.py +4 -2
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/enums.py +18 -1
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/router/status_router.py +1 -1
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/warnings.py +6 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/configuration.py +2 -4
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/api_error_identifier.py +7 -7
- {crypticorn-2.14.0 → crypticorn-2.15.0/crypticorn.egg-info}/PKG-INFO +1 -1
- {crypticorn-2.14.0 → crypticorn-2.15.0}/pyproject.toml +1 -1
- {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_custom_session.py +9 -5
- {crypticorn-2.14.0 → crypticorn-2.15.0}/LICENSE +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/MANIFEST.in +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/README.md +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/admin_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/auth_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/service_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/user_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api/wallet_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api_client.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/api_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/configuration.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/exceptions.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/add_wallet200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/add_wallet_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user200_response_auth.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_api_key200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_api_key_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_user_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/get_api_keys200_response_inner.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_data_inner.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response_user_value.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/logout_default_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/logout_default_response_issues_inner.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/oauth_callback200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/oauth_callback200_response_user.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/refresh_token_info200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/resend_verification_email_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/revoke_user_tokens_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/rotate_tokens200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/token_info200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/unlink_wallet_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/update_user_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_by_username200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_reset_password_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_set_password_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email200_response_auth.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email200_response_auth_auth.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_wallet_request.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/wallet_verified200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/whoami200_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/py.typed +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/rest.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/main.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/__main__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/init.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/Dockerfile +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/dependabot.yml +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/merge-env.sh +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/templates/ruff.yml +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/cli/version.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/ansi_colors.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/auth.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/decorators.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/errors.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/exceptions.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/logging.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/middleware.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/mixins.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/openapi.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/pagination.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/router/admin_router.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/scopes.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/urls.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/common/utils.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/admin_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/data_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/models_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api/status_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api_client.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/api_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/configuration.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/exceptions.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/api_error_identifier.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/api_error_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/api_error_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/coin_info.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/coins.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_download_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_info.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_options.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_version.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_version_info.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/download_links.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/evaluation.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/evaluation_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/exception_detail.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/feature_size.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/log_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_read.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_status.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/model_update.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/target.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/target_info.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/target_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/py.typed +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/rest.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/main.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/utils.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/admin_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/change_in_timeframe_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/funding_rates_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/ohlcv_data_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/status_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/symbols_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/udf_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api_client.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/configuration.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/exceptions.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/api_error_identifier.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/api_error_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/api_error_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/change_in_timeframe.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/exception_detail.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/funding_rate.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/funding_rate_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/internal_exchange.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/log_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/market_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/ohlcv.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/resolution.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/search_symbol.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/sort_direction.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/symbol_group.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/symbol_info.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/symbol_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/timeframe.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/models/udf_config.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/py.typed +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/rest.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/main.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/admin_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/exchanges_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/indicators_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/logs_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/marketcap_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/markets_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/quote_currencies_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/status_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api/tokens_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api_client.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/api_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/exceptions.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/api_error_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/api_error_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/exception_detail.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/exchange_availability.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/exchange_mapping.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/internal_exchange.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/log_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/market_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/marketcap_ranking.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/marketcap_symbol_ranking.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/ohlcv.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/severity.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/time_interval.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/trading_status.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/py.typed +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/rest.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/main.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/admin_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/now_payments_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/payments_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/products_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api/status_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api_client.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/api_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/configuration.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/exceptions.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/api_error_identifier.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/api_error_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/api_error_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/exception_detail.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/log_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/now_create_invoice_req.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/now_create_invoice_res.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/payment.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/payment_status.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/product.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/product_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/product_update.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/provider.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/scope.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/models/subscription.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/py.typed +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/client/rest.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/pay/main.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/admin_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/api_keys_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/bots_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/exchanges_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/futures_trading_panel_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/notifications_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/orders_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/status_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/strategies_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api/trading_actions_api.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api_client.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/api_response.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/configuration.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/exceptions.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/__init__.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/api_error_identifier.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/api_error_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/api_error_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot_status.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/bot_update.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exception_detail.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange_key.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange_key_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/exchange_key_update.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/execution_ids.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/futures_balance.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/futures_trading_action.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/futures_trading_action_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/log_level.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/margin_mode.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/market_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/notification.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/notification_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/notification_update.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/order.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/order_status.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/post_futures_action.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/spot_trading_action_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy_exchange_info.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/strategy_update.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/tpsl.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/tpsl_create.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/models/trading_action_type.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/py.typed +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/client/rest.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/trade/main.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/SOURCES.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/dependency_links.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/entry_points.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/requires.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn.egg-info/top_level.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/dev.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/extra.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/main.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/requirements/test.txt +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/setup.cfg +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/static/favicon.svg +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/static/logo.svg +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/static/pip-structure.drawio +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/static/pip-structure.svg +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_auth_client.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_config.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_enums.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_errors.py +0 -0
- {crypticorn-2.14.0 → crypticorn-2.15.0}/tests/test_pagination.py +0 -0
@@ -1,6 +1,14 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v2.15.0 (2025-05-27)
|
5
|
+
|
6
|
+
### Features
|
7
|
+
|
8
|
+
- Deprecate `InternalExchange` and move enum members to `Exchange`
|
9
|
+
([`5a4cea7`](https://github.com/crypticorn-ai/api-client/commit/5a4cea7695f862a2bc66bf921749f973117452cb))
|
10
|
+
|
11
|
+
|
4
12
|
## v2.14.0 (2025-05-26)
|
5
13
|
|
6
14
|
### Bug Fixes
|
@@ -14,14 +14,9 @@ dotenv.load_dotenv()
|
|
14
14
|
|
15
15
|
logger = logging.getLogger(__name__)
|
16
16
|
|
17
|
-
DOCKER_ENV = os.getenv("IS_DOCKER")
|
17
|
+
DOCKER_ENV = os.getenv("IS_DOCKER", "0")
|
18
18
|
API_ENV = os.getenv("API_ENV")
|
19
19
|
|
20
|
-
if not DOCKER_ENV:
|
21
|
-
raise ValueError(
|
22
|
-
"IS_DOCKER is not set. Please set it to '0' in .env and '1' in the docker-compose.yml file."
|
23
|
-
)
|
24
|
-
|
25
20
|
if not API_ENV:
|
26
21
|
raise ValueError(
|
27
22
|
"API_ENV is not set. Please set it to 'prod', 'dev' or 'local' in .env (of type ApiEnv)."
|
@@ -37,7 +37,7 @@ class ApiClient:
|
|
37
37
|
"""The version of the client."""
|
38
38
|
|
39
39
|
self._http_client = http_client
|
40
|
-
self._owns_http_client = http_client is None
|
40
|
+
self._owns_http_client = http_client is None # whether we own the http client
|
41
41
|
self._service_classes: dict[Service, type[SubClient]] = {
|
42
42
|
Service.HIVE: HiveClient,
|
43
43
|
Service.TRADE: TradeClient,
|
@@ -116,7 +116,9 @@ class ApiClient:
|
|
116
116
|
headers={"User-Agent": f"crypticorn/python/{self.version}"},
|
117
117
|
)
|
118
118
|
for service in self._services.values():
|
119
|
-
if hasattr(service,
|
119
|
+
if hasattr(service, "base_client") and hasattr(
|
120
|
+
service.base_client, "rest_client"
|
121
|
+
):
|
120
122
|
service.base_client.rest_client.pool_manager = self._http_client
|
121
123
|
|
122
124
|
def _get_default_config(self, service, version=None):
|
@@ -5,15 +5,24 @@ try:
|
|
5
5
|
except ImportError:
|
6
6
|
from strenum import StrEnum
|
7
7
|
|
8
|
+
from enum import Enum
|
9
|
+
import warnings
|
10
|
+
import typing_extensions
|
8
11
|
from crypticorn.common.mixins import ValidateEnumMixin
|
12
|
+
from crypticorn.common.warnings import CrypticornDeprecatedSince215
|
9
13
|
|
10
14
|
|
11
15
|
class Exchange(ValidateEnumMixin, StrEnum):
|
12
|
-
"""
|
16
|
+
"""All exchanges used in the crypticorn ecosystem. Refer to the APIs for support for a specific usecase (data, trading, etc.)."""
|
13
17
|
|
14
18
|
KUCOIN = "kucoin"
|
15
19
|
BINGX = "bingx"
|
20
|
+
BINANCE = "binance"
|
21
|
+
BYBIT = "bybit"
|
16
22
|
HYPERLIQUID = "hyperliquid"
|
23
|
+
BITGET = "bitget"
|
24
|
+
GATEIO = "gateio"
|
25
|
+
BITSTAMP = "bitstamp"
|
17
26
|
|
18
27
|
|
19
28
|
class InternalExchange(ValidateEnumMixin, StrEnum):
|
@@ -26,6 +35,14 @@ class InternalExchange(ValidateEnumMixin, StrEnum):
|
|
26
35
|
HYPERLIQUID = "hyperliquid"
|
27
36
|
BITGET = "bitget"
|
28
37
|
|
38
|
+
@classmethod
|
39
|
+
def __getattr__(cls, name):
|
40
|
+
warnings.warn(
|
41
|
+
"The `InternalExchange` enum is deprecated; use `Exchange` instead.",
|
42
|
+
category=CrypticornDeprecatedSince215,
|
43
|
+
)
|
44
|
+
return super().__getattr__(name)
|
45
|
+
|
29
46
|
|
30
47
|
class MarketType(ValidateEnumMixin, StrEnum):
|
31
48
|
"""
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"""
|
2
2
|
This module contains the status router for the API.
|
3
3
|
It provides endpoints for checking the status of the API and get the server's time.
|
4
|
-
SHOULD ALLOW ACCESS TO THIS ROUTER WITHOUT.
|
4
|
+
SHOULD ALLOW ACCESS TO THIS ROUTER WITHOUT AUTH.
|
5
5
|
>>> app.include_router(status_router)
|
6
6
|
"""
|
7
7
|
|
@@ -55,6 +55,12 @@ class CrypticornDeprecatedSince28(CrypticornDeprecationWarning):
|
|
55
55
|
def __init__(self, message: str, *args: object) -> None:
|
56
56
|
super().__init__(message, *args, since=(2, 8), expected_removal=(3, 0))
|
57
57
|
|
58
|
+
class CrypticornDeprecatedSince215(CrypticornDeprecationWarning):
|
59
|
+
"""A specific `CrypticornDeprecationWarning` subclass defining functionality deprecated since Crypticorn 2.15."""
|
60
|
+
|
61
|
+
def __init__(self, message: str, *args: object) -> None:
|
62
|
+
super().__init__(message, *args, since=(2, 15), expected_removal=(3, 0))
|
63
|
+
|
58
64
|
|
59
65
|
class CrypticornExperimentalWarning(Warning):
|
60
66
|
"""A Crypticorn specific experimental functionality warning.
|
@@ -215,9 +215,7 @@ class Configuration:
|
|
215
215
|
debug: Optional[bool] = None,
|
216
216
|
) -> None:
|
217
217
|
"""Constructor"""
|
218
|
-
self._base_path =
|
219
|
-
"https://api.crypticorn.dev/v1/metrics" if host is None else host
|
220
|
-
)
|
218
|
+
self._base_path = "http://localhost/v1/metrics" if host is None else host
|
221
219
|
"""Default Base url
|
222
220
|
"""
|
223
221
|
self.server_index = 0 if server_index is None and host is None else server_index
|
@@ -559,7 +557,7 @@ class Configuration:
|
|
559
557
|
"""
|
560
558
|
return [
|
561
559
|
{
|
562
|
-
"url": "
|
560
|
+
"url": "http://localhost/v1/metrics",
|
563
561
|
"description": "No description provided",
|
564
562
|
}
|
565
563
|
]
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/metrics/client/models/api_error_identifier.py
RENAMED
@@ -28,15 +28,17 @@ class ApiErrorIdentifier(str, Enum):
|
|
28
28
|
"""
|
29
29
|
ALLOCATION_BELOW_CURRENT_EXPOSURE = "allocation_below_current_exposure"
|
30
30
|
ALLOCATION_BELOW_MIN_AMOUNT = "allocation_below_min_amount"
|
31
|
+
ALLOCATION_LIMIT_EXCEEDED = "allocation_limit_exceeded"
|
31
32
|
BLACK_SWAN = "black_swan"
|
32
33
|
BOT_ALREADY_DELETED = "bot_already_deleted"
|
33
|
-
BOT_DISABLED = "bot_disabled"
|
34
34
|
BOT_STOPPING_COMPLETED = "bot_stopping_completed"
|
35
35
|
BOT_STOPPING_STARTED = "bot_stopping_started"
|
36
36
|
CANCELLED_OPEN_ORDER = "cancelled_open_order"
|
37
37
|
CLIENT_ORDER_ID_ALREADY_EXISTS = "client_order_id_already_exists"
|
38
38
|
INVALID_CONTENT_TYPE = "invalid_content_type"
|
39
39
|
DELETE_BOT_ERROR = "delete_bot_error"
|
40
|
+
EXCHANGE_HTTP_REQUEST_ERROR = "exchange_http_request_error"
|
41
|
+
EXCHANGE_INVALID_PARAMETER = "exchange_invalid_parameter"
|
40
42
|
EXCHANGE_INVALID_SIGNATURE = "exchange_invalid_signature"
|
41
43
|
EXCHANGE_INVALID_TIMESTAMP = "exchange_invalid_timestamp"
|
42
44
|
EXCHANGE_IP_ADDRESS_IS_NOT_AUTHORIZED = "exchange_ip_address_is_not_authorized"
|
@@ -56,10 +58,9 @@ class ApiErrorIdentifier(str, Enum):
|
|
56
58
|
EXCHANGE_USER_ACCOUNT_IS_FROZEN = "exchange_user_account_is_frozen"
|
57
59
|
API_KEY_EXPIRED = "api_key_expired"
|
58
60
|
BEARER_TOKEN_EXPIRED = "bearer_token_expired"
|
59
|
-
|
61
|
+
FAILED_OPEN_ORDER = "failed_open_order"
|
60
62
|
FORBIDDEN = "forbidden"
|
61
63
|
HEDGE_MODE_NOT_ACTIVE = "hedge_mode_not_active"
|
62
|
-
HTTP_REQUEST_ERROR = "http_request_error"
|
63
64
|
INSUFFICIENT_BALANCE = "insufficient_balance"
|
64
65
|
INSUFFICIENT_MARGIN = "insufficient_margin"
|
65
66
|
INSUFFICIENT_SCOPES = "insufficient_scopes"
|
@@ -68,15 +69,15 @@ class ApiErrorIdentifier(str, Enum):
|
|
68
69
|
INVALID_DATA = "invalid_data"
|
69
70
|
INVALID_DATA_RESPONSE = "invalid_data_response"
|
70
71
|
INVALID_EXCHANGE_KEY = "invalid_exchange_key"
|
71
|
-
INVALID_MARGIN_MODE = "invalid_margin_mode"
|
72
72
|
INVALID_MODEL_NAME = "invalid_model_name"
|
73
|
-
INVALID_PARAMETER_PROVIDED = "exchange_invalid_parameter"
|
74
73
|
LEVERAGE_LIMIT_EXCEEDED = "leverage_limit_exceeded"
|
75
74
|
ORDER_VIOLATES_LIQUIDATION_PRICE_CONSTRAINTS = (
|
76
75
|
"order_violates_liquidation_price_constraints"
|
77
76
|
)
|
78
77
|
MARGIN_MODE_CLASH = "margin_mode_clash"
|
79
78
|
NAME_NOT_UNIQUE = "name_not_unique"
|
79
|
+
NO_API_KEY = "no_api_key"
|
80
|
+
NO_BEARER = "no_bearer"
|
80
81
|
NO_CREDENTIALS = "no_credentials"
|
81
82
|
NOW_API_DOWN = "now_api_down"
|
82
83
|
OBJECT_ALREADY_EXISTS = "object_already_exists"
|
@@ -102,14 +103,13 @@ class ApiErrorIdentifier(str, Enum):
|
|
102
103
|
RISK_LIMIT_EXCEEDED = "risk_limit_exceeded"
|
103
104
|
RPC_TIMEOUT = "rpc_timeout"
|
104
105
|
SYSTEM_SETTLEMENT_IN_PROCESS = "system_settlement_in_process"
|
105
|
-
STRATEGY_ALREADY_EXISTS = "strategy_already_exists"
|
106
106
|
STRATEGY_DISABLED = "strategy_disabled"
|
107
107
|
STRATEGY_LEVERAGE_MISMATCH = "strategy_leverage_mismatch"
|
108
108
|
STRATEGY_NOT_SUPPORTING_EXCHANGE = "strategy_not_supporting_exchange"
|
109
109
|
SUCCESS = "success"
|
110
110
|
SYMBOL_DOES_NOT_EXIST = "symbol_does_not_exist"
|
111
111
|
TRADING_ACTION_EXPIRED = "trading_action_expired"
|
112
|
-
TRADING_ACTION_SKIPPED_BOT_STOPPING = "
|
112
|
+
TRADING_ACTION_SKIPPED_BOT_STOPPING = "trading_action_skipped_bot_stopping"
|
113
113
|
TRADING_HAS_BEEN_LOCKED = "trading_has_been_locked"
|
114
114
|
TRADING_IS_SUSPENDED = "trading_is_suspended"
|
115
115
|
UNKNOWN_ERROR_OCCURRED = "unknown_error_occurred"
|
@@ -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.
|
8
|
+
version = "2.15.0"
|
9
9
|
keywords = ["machine learning", "data science", "crypto", "modelling"]
|
10
10
|
dynamic = ["dependencies", "optional-dependencies"]
|
11
11
|
|
@@ -57,7 +57,8 @@ async def test_close_owned_http_client():
|
|
57
57
|
session = client._http_client
|
58
58
|
|
59
59
|
await client.close()
|
60
|
-
assert session.closed
|
60
|
+
assert session.closed # session should be closed since we own it
|
61
|
+
|
61
62
|
|
62
63
|
@pytest.mark.asyncio
|
63
64
|
async def test_unclosed_owned_session_warns():
|
@@ -77,6 +78,7 @@ async def test_unclosed_owned_session_warns():
|
|
77
78
|
]
|
78
79
|
assert unclosed_warnings, "Expected unclosed client session warning"
|
79
80
|
|
81
|
+
|
80
82
|
@pytest.mark.asyncio
|
81
83
|
async def test_custom_session_not_closed_by_client():
|
82
84
|
with warnings.catch_warnings(record=True) as w:
|
@@ -95,12 +97,14 @@ async def test_custom_session_not_closed_by_client():
|
|
95
97
|
await asyncio.sleep(0.1)
|
96
98
|
|
97
99
|
unclosed_warnings = [
|
98
|
-
warn
|
99
|
-
|
100
|
-
|
100
|
+
warn
|
101
|
+
for warn in w
|
102
|
+
if "Unclosed client session" in str(warn.message)
|
103
|
+
or "Unclosed connector" in str(warn.message)
|
101
104
|
]
|
102
105
|
assert unclosed_warnings, "Expected unclosed client session warning"
|
103
106
|
|
107
|
+
|
104
108
|
@pytest.mark.asyncio
|
105
109
|
async def test_context_manager_usage():
|
106
110
|
async with ApiClient() as client:
|
@@ -110,4 +114,4 @@ async def test_context_manager_usage():
|
|
110
114
|
assert subclient.base_client.rest_client.pool_manager is client._http_client
|
111
115
|
|
112
116
|
# Confirm session is closed after context manager
|
113
|
-
assert client._http_client is None
|
117
|
+
assert client._http_client is None
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/add_wallet200_response.py
RENAMED
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user200_response.py
RENAMED
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/authorize_user_request.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_api_key200_response.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_api_key_request.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/create_user_request.py
RENAMED
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/list_wallets200_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/logout_default_response.py
RENAMED
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/oauth_callback200_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/revoke_user_tokens_request.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/rotate_tokens200_response.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/token_info200_response.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/unlink_wallet_request.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/update_user_request.py
RENAMED
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_reset_password_request.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/user_set_password_request.py
RENAMED
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email200_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_email_request.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/verify_wallet_request.py
RENAMED
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/auth/client/models/wallet_verified200_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/api_error_identifier.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/data_download_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/hive/client/models/evaluation_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crypticorn-2.14.0 → crypticorn-2.15.0}/crypticorn/klines/client/api/change_in_timeframe_api.py
RENAMED
File without changes
|
File without changes
|
File without changes
|