webull-openapi-python-sdk 1.0.7__tar.gz → 1.0.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.
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/PKG-INFO +1 -1
- webull_openapi_python_sdk-1.0.8/samples/__init__.py +1 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/trade_client_v3.py +32 -1
- webull_openapi_python_sdk-1.0.8/webull/__init__.py +1 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/__init__.py +1 -1
- webull_openapi_python_sdk-1.0.8/webull/data/__init__.py +3 -0
- webull_openapi_python_sdk-1.0.8/webull/data/quotes/subscribe/message_pb2.py +37 -0
- webull_openapi_python_sdk-1.0.8/webull/data/quotes/subscribe/snapshot_result.py +133 -0
- webull_openapi_python_sdk-1.0.8/webull/trade/__init__.py +1 -0
- webull_openapi_python_sdk-1.0.8/webull/trade/request/v3/batch_place_order_request.py +52 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/v3/order_opration_v3.py +13 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull_openapi_python_sdk.egg-info/PKG-INFO +1 -1
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull_openapi_python_sdk.egg-info/SOURCES.txt +1 -0
- webull_openapi_python_sdk-1.0.7/samples/__init__.py +0 -1
- webull_openapi_python_sdk-1.0.7/webull/__init__.py +0 -1
- webull_openapi_python_sdk-1.0.7/webull/data/__init__.py +0 -3
- webull_openapi_python_sdk-1.0.7/webull/data/quotes/subscribe/message_pb2.py +0 -37
- webull_openapi_python_sdk-1.0.7/webull/data/quotes/subscribe/snapshot_result.py +0 -69
- webull_openapi_python_sdk-1.0.7/webull/trade/__init__.py +0 -1
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/ChangeLog.txt +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/LICENSE +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/MANIFEST.in +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/NOTICE +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/README.rst +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/account/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/account/account_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/assets/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/assets/assets_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/data/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/data/data_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/data/data_streaming_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/data/data_streaming_client_async.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/order/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/order/order_option_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/order/order_stock_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/trade_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/trade_client_v2.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/trade_event_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/setup.cfg +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/setup.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/algorithm/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/algorithm/sha_hmac1.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/algorithm/sha_hmac256.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/composer/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/composer/default_signature_composer.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/credentials.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/signers/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/signers/app_key_signer.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/signers/signer.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/signers/signer_factory.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/cache/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/api_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/easy_enum.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/region.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/compat.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/context/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/context/request_context_holder.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/data/endpoints.json +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/data/retry_config.json +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/endpoint/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/endpoint/chained_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/endpoint/default_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/endpoint/local_config_regional_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/endpoint/resolver_endpoint_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/endpoint/user_customized_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/exception/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/exception/error_code.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/exception/error_msg.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/exception/exceptions.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/headers.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/client_initializer.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/config/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/config/bean/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/config/bean/query_config_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/config/config_operation.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/bean/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/bean/access_token.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/bean/check_token_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/bean/create_token_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/bean/refresh_token_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/token_manager.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/token_operation.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/initializer/token/token_storage.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/method_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/protocol_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/response.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/retry/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/retry/backoff_strategy.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/retry/retry_condition.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/retry/retry_policy.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/retry/retry_policy_context.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/utils/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/utils/common.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/utils/data.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/utils/desensitize.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/utils/validation.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/__version__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/_internal_utils.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/adapters.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/api.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/auth.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/certs.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/compat.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/cookies.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/exceptions.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/help.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/hooks.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/models.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/certifi/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/certifi/__main__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/certifi/cacert.pem +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/certifi/core.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/big5freq.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/big5prober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/chardistribution.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/charsetgroupprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/charsetprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/cli/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/cli/chardetect.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/codingstatemachine.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/compat.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/cp949prober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/enums.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/escprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/escsm.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/eucjpprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/euckrfreq.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/euckrprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/euctwfreq.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/euctwprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/gb2312freq.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/gb2312prober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/hebrewprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/jisfreq.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/jpcntx.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/langbulgarianmodel.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/langcyrillicmodel.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/langgreekmodel.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/langhebrewmodel.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/langhungarianmodel.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/langthaimodel.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/langturkishmodel.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/latin1prober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/mbcharsetprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/mbcsgroupprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/mbcssm.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/sbcharsetprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/sbcsgroupprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/sjisprober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/universaldetector.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/utf8prober.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/chardet/version.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/_collections.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/connection.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/connectionpool.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/_appengine_environ.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/_securetransport/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/_securetransport/bindings.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/_securetransport/low_level.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/appengine.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/ntlmpool.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/pyopenssl.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/securetransport.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/contrib/socks.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/exceptions.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/fields.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/filepost.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/backports/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/backports/makefile.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/ordered_dict.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/six.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/socks.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/poolmanager.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/response.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/connection.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/queue.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/response.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/retry.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/selectors.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/ssl_.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/timeout.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/url.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages/urllib3/util/wait.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/packages.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/sessions.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/status_codes.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/structures.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/requests/utils.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/vendored/six.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/category.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/connect_ack.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/contract_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/direction.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/exchange_code.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/exercise_style.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/expiration_cycle.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/instrument_status.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/option_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/subscribe_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/common/timespan.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/data_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/data_streaming_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/internal/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/internal/default_retry_policy.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/internal/exceptions.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/internal/quotes_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/internal/quotes_decoder.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/internal/quotes_payload_decoder.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/internal/quotes_topic.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/crypto_market_data.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/futures_market_data.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/instrument.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/market_data.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/market_streaming_data.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/ask_bid_result.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/basic_result.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/broker_result.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/order_result.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/payload_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/quote_decoder.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/quote_result.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/snapshot_decoder.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/tick_decoder.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/quotes/subscribe/tick_result.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_batch_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_corp_action_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_crypto_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_crypto_instruments_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_crypto_snapshot_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_eod_bars_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_futures_depth_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_futures_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_futures_instruments_by_code_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_futures_instruments_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_futures_products_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_futures_snapshot_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_futures_tick_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_instruments_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_quotes_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_snapshot_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/get_tick_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/subscribe_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/data/request/unsubscribe_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/account_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/category.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/combo_ticker_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/combo_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/currency.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/forbid_reason.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/instrument_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/markets.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/order_entrust_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/order_side.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/order_status.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/order_tif.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/order_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/trade_policy.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/trading_date_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/common/trailing_type.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/events/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/events/default_retry_policy.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/events/events_pb2.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/events/events_pb2_grpc.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/events/signature_composer.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/events/types.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/cancel_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_account_balance_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_account_positions_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_account_profile_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_app_subscriptions.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_open_orders_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_order_detail_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_today_orders_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_trade_calendar_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_trade_instrument_detail_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_trade_security_detail_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/get_tradeable_instruments_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/palce_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/place_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/place_order_request_v2.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/replace_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/replace_order_request_v2.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/cancel_option_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/cancel_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/get_account_balance_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/get_account_list.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/get_account_list_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/get_account_positions_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/get_order_detail_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/get_order_history_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/get_order_open_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/palce_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/place_option_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/place_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/preview_option_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/preview_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/replace_option_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v2/replace_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/cancel_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/get_order_detail_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/get_order_history_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/get_order_open_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/place_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/preview_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/request/v3/replace_order_request.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/account_info.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/order_operation.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/trade_calendar.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/trade_instrument.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/v2/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/v2/account_info_v2.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/v2/order_operation_v2.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade/v3/__init__.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/trade/trade_events_client.py +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull_openapi_python_sdk.egg-info/dependency_links.txt +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull_openapi_python_sdk.egg-info/requires.txt +0 -0
- {webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull_openapi_python_sdk.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '1.0.8'
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/trade_client_v3.py
RENAMED
|
@@ -208,7 +208,38 @@ if __name__ == '__main__':
|
|
|
208
208
|
if res.status_code == 200:
|
|
209
209
|
print('get master order detail res:', res.json())
|
|
210
210
|
|
|
211
|
-
|
|
211
|
+
# batch place order
|
|
212
|
+
batch_place_orders = [
|
|
213
|
+
{
|
|
214
|
+
"combo_type": "NORMAL",
|
|
215
|
+
"client_order_id": uuid.uuid4().hex,
|
|
216
|
+
"instrument_type": "EQUITY",
|
|
217
|
+
"market": "US",
|
|
218
|
+
"symbol": "AAPL",
|
|
219
|
+
"order_type": "MARKET",
|
|
220
|
+
"entrust_type": "QTY",
|
|
221
|
+
"support_trading_session": "CORE",
|
|
222
|
+
"time_in_force": "DAY",
|
|
223
|
+
"side": "BUY",
|
|
224
|
+
"quantity": "1"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"combo_type": "NORMAL",
|
|
228
|
+
"client_order_id": uuid.uuid4().hex,
|
|
229
|
+
"instrument_type": "EQUITY",
|
|
230
|
+
"market": "US",
|
|
231
|
+
"symbol": "TESL",
|
|
232
|
+
"order_type": "MARKET",
|
|
233
|
+
"entrust_type": "QTY",
|
|
234
|
+
"support_trading_session": "CORE",
|
|
235
|
+
"time_in_force": "DAY",
|
|
236
|
+
"side": "BUY",
|
|
237
|
+
"quantity": "1"
|
|
238
|
+
}
|
|
239
|
+
]
|
|
240
|
+
res = trade_client.order_v3.batch_place_order(account_id, batch_place_orders)
|
|
241
|
+
if res.status_code == 200:
|
|
242
|
+
print('batch place normal equity order res:', res.json())
|
|
212
243
|
|
|
213
244
|
|
|
214
245
|
# ============================================================
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '1.0.8'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: message.proto
|
|
4
|
+
"""Generated protocol buffer code."""
|
|
5
|
+
from google.protobuf.internal import builder as _builder
|
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
# @@protoc_insertion_point(imports)
|
|
10
|
+
|
|
11
|
+
_sym_db = _symbol_database.Default()
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rmessage.proto\"Z\n\x05\x42\x61sic\x12\x0e\n\x06symbol\x18\x01 \x01(\t\x12\x15\n\rinstrument_id\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x03 \x01(\t\x12\x17\n\x0ftrading_session\x18\x04 \x01(\t\"\xd6\x03\n\x08Snapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x12\n\ntrade_time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0c\n\x04open\x18\x04 \x01(\t\x12\x0c\n\x04high\x18\x05 \x01(\t\x12\x0b\n\x03low\x18\x06 \x01(\t\x12\x11\n\tpre_close\x18\x07 \x01(\t\x12\x0e\n\x06volume\x18\x08 \x01(\t\x12\x0e\n\x06\x63hange\x18\t \x01(\t\x12\x14\n\x0c\x63hange_ratio\x18\n \x01(\t\x12\x16\n\x0e\x65xt_trade_time\x18\x0b \x01(\t\x12\x11\n\text_price\x18\x0c \x01(\t\x12\x10\n\x08\x65xt_high\x18\r \x01(\t\x12\x0f\n\x07\x65xt_low\x18\x0e \x01(\t\x12\x12\n\next_volume\x18\x0f \x01(\t\x12\x12\n\next_change\x18\x10 \x01(\t\x12\x18\n\x10\x65xt_change_ratio\x18\x11 \x01(\t\x12\x16\n\x0eovn_trade_time\x18\x12 \x01(\t\x12\x11\n\tovn_price\x18\x13 \x01(\t\x12\x10\n\x08ovn_high\x18\x14 \x01(\t\x12\x0f\n\x07ovn_low\x18\x15 \x01(\t\x12\x12\n\novn_volume\x18\x16 \x01(\t\x12\x12\n\novn_change\x18\x17 \x01(\t\x12\x18\n\x10ovn_change_ratio\x18\x18 \x01(\t\"L\n\x05Quote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x15\n\x04\x61sks\x18\x02 \x03(\x0b\x32\x07.AskBid\x12\x15\n\x04\x62ids\x18\x03 \x03(\x0b\x32\x07.AskBid\"X\n\x04Tick\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x0c\n\x04time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0e\n\x06volume\x18\x04 \x01(\t\x12\x0c\n\x04side\x18\x05 \x01(\t\"U\n\x06\x41skBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\x12\x15\n\x05order\x18\x03 \x03(\x0b\x32\x06.Order\x12\x17\n\x06\x62roker\x18\x04 \x03(\x0b\x32\x07.Broker\"#\n\x05Order\x12\x0c\n\x04mpid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\"#\n\x06\x42roker\x12\x0b\n\x03\x62id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3')
|
|
17
|
+
|
|
18
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
19
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'message_pb2', globals())
|
|
20
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
21
|
+
|
|
22
|
+
DESCRIPTOR._options = None
|
|
23
|
+
_BASIC._serialized_start=17
|
|
24
|
+
_BASIC._serialized_end=107
|
|
25
|
+
_SNAPSHOT._serialized_start=110
|
|
26
|
+
_SNAPSHOT._serialized_end=580
|
|
27
|
+
_QUOTE._serialized_start=582
|
|
28
|
+
_QUOTE._serialized_end=658
|
|
29
|
+
_TICK._serialized_start=660
|
|
30
|
+
_TICK._serialized_end=748
|
|
31
|
+
_ASKBID._serialized_start=750
|
|
32
|
+
_ASKBID._serialized_end=835
|
|
33
|
+
_ORDER._serialized_start=837
|
|
34
|
+
_ORDER._serialized_end=872
|
|
35
|
+
_BROKER._serialized_start=874
|
|
36
|
+
_BROKER._serialized_end=909
|
|
37
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from decimal import Decimal
|
|
18
|
+
from webull.data.quotes.subscribe.basic_result import BasicResult
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SnapshotResult:
|
|
22
|
+
def __init__(self, pb_snapshot):
|
|
23
|
+
self.basic = BasicResult(pb_snapshot.basic)
|
|
24
|
+
self.last_trade_time = int(pb_snapshot.trade_time) if pb_snapshot.trade_time else None
|
|
25
|
+
self.price = Decimal(pb_snapshot.price) if pb_snapshot.price else None
|
|
26
|
+
self.open = Decimal(pb_snapshot.open) if pb_snapshot.open else None
|
|
27
|
+
self.high = Decimal(pb_snapshot.high) if pb_snapshot.high else None
|
|
28
|
+
self.low = Decimal(pb_snapshot.low) if pb_snapshot.low else None
|
|
29
|
+
self.pre_close = Decimal(pb_snapshot.pre_close) if pb_snapshot.pre_close else None
|
|
30
|
+
self.close = Decimal(pb_snapshot.open) if pb_snapshot.open else None
|
|
31
|
+
self.volume = Decimal(pb_snapshot.volume) if pb_snapshot.volume else None
|
|
32
|
+
self.change = Decimal(pb_snapshot.change) if pb_snapshot.change else None
|
|
33
|
+
self.change_ratio = Decimal(pb_snapshot.change_ratio) if pb_snapshot.change_ratio else None
|
|
34
|
+
self.ext_trade_time = int(pb_snapshot.ext_trade_time) if pb_snapshot.ext_trade_time else None
|
|
35
|
+
self.ext_price = Decimal(pb_snapshot.ext_price) if pb_snapshot.ext_price else None
|
|
36
|
+
self.ext_high = Decimal(pb_snapshot.ext_high) if pb_snapshot.ext_high else None
|
|
37
|
+
self.ext_low = Decimal(pb_snapshot.ext_low) if pb_snapshot.ext_low else None
|
|
38
|
+
self.ext_volume = Decimal(pb_snapshot.ext_volume) if pb_snapshot.ext_volume else None
|
|
39
|
+
self.ext_change = Decimal(pb_snapshot.ext_change) if pb_snapshot.ext_change else None
|
|
40
|
+
self.ext_change_ratio = Decimal(pb_snapshot.ext_change_ratio) if pb_snapshot.ext_change_ratio else None
|
|
41
|
+
self.ovn_trade_time = int(pb_snapshot.ovn_trade_time) if pb_snapshot.ovn_trade_time else None
|
|
42
|
+
self.ovn_price = Decimal(pb_snapshot.ovn_price) if pb_snapshot.ovn_price else None
|
|
43
|
+
self.ovn_high = Decimal(pb_snapshot.ovn_high) if pb_snapshot.ovn_high else None
|
|
44
|
+
self.ovn_low = Decimal(pb_snapshot.ovn_low) if pb_snapshot.ovn_low else None
|
|
45
|
+
self.ovn_volume = Decimal(pb_snapshot.ovn_volume) if pb_snapshot.ovn_volume else None
|
|
46
|
+
self.ovn_change = Decimal(pb_snapshot.ovn_change) if pb_snapshot.ovn_change else None
|
|
47
|
+
self.ovn_change_ratio = Decimal(pb_snapshot.ovn_change_ratio) if pb_snapshot.ovn_change_ratio else None
|
|
48
|
+
|
|
49
|
+
def get_basic(self):
|
|
50
|
+
return self.basic
|
|
51
|
+
|
|
52
|
+
def get_last_trade_time(self):
|
|
53
|
+
return self.last_trade_time
|
|
54
|
+
|
|
55
|
+
def get_price(self):
|
|
56
|
+
return self.price
|
|
57
|
+
|
|
58
|
+
def get_open(self):
|
|
59
|
+
return self.open
|
|
60
|
+
|
|
61
|
+
def get_high(self):
|
|
62
|
+
return self.high
|
|
63
|
+
|
|
64
|
+
def get_low(self):
|
|
65
|
+
return self.low
|
|
66
|
+
|
|
67
|
+
def get_pre_close(self):
|
|
68
|
+
return self.pre_close
|
|
69
|
+
|
|
70
|
+
def get_close(self):
|
|
71
|
+
return self.close
|
|
72
|
+
|
|
73
|
+
def get_volume(self):
|
|
74
|
+
return self.volume
|
|
75
|
+
|
|
76
|
+
def get_change(self):
|
|
77
|
+
return self.change
|
|
78
|
+
|
|
79
|
+
def get_change_ratio(self):
|
|
80
|
+
return self.change_ratio
|
|
81
|
+
|
|
82
|
+
def get_ext_trade_time(self):
|
|
83
|
+
return self.ext_trade_time
|
|
84
|
+
|
|
85
|
+
def get_ext_price(self):
|
|
86
|
+
return self.ext_price
|
|
87
|
+
|
|
88
|
+
def get_ext_high(self):
|
|
89
|
+
return self.ext_high
|
|
90
|
+
|
|
91
|
+
def get_ext_low(self):
|
|
92
|
+
return self.ext_low
|
|
93
|
+
|
|
94
|
+
def get_ext_volume(self):
|
|
95
|
+
return self.ext_volume
|
|
96
|
+
|
|
97
|
+
def get_ext_change(self):
|
|
98
|
+
return self.ext_change
|
|
99
|
+
|
|
100
|
+
def get_ext_change_ratio(self):
|
|
101
|
+
return self.ext_change_ratio
|
|
102
|
+
|
|
103
|
+
def get_ovn_trade_time(self):
|
|
104
|
+
return self.ovn_trade_time
|
|
105
|
+
|
|
106
|
+
def get_ovn_price(self):
|
|
107
|
+
return self.ovn_price
|
|
108
|
+
|
|
109
|
+
def get_ovn_high(self):
|
|
110
|
+
return self.ovn_high
|
|
111
|
+
|
|
112
|
+
def get_ovn_low(self):
|
|
113
|
+
return self.ovn_low
|
|
114
|
+
|
|
115
|
+
def get_ovn_volume(self):
|
|
116
|
+
return self.ovn_volume
|
|
117
|
+
|
|
118
|
+
def get_ovn_change(self):
|
|
119
|
+
return self.ovn_change
|
|
120
|
+
|
|
121
|
+
def get_ovn_change_ratio(self):
|
|
122
|
+
return self.ovn_change_ratio
|
|
123
|
+
|
|
124
|
+
def __repr__(self):
|
|
125
|
+
attrs = ['last_trade_time', 'price', 'open', 'high', 'low', 'pre_close', 'close', 'volume', 'change', 'change_ratio']
|
|
126
|
+
ext_attrs = [f"ext_{name}" for name in ['trade_time', 'price', 'high', 'low', 'volume', 'change', 'change_ratio']]
|
|
127
|
+
ovn_attrs = [f"ovn_{name}" for name in ['trade_time', 'price', 'high', 'low', 'volume', 'change', 'change_ratio']]
|
|
128
|
+
all_attrs = attrs + ext_attrs + ovn_attrs
|
|
129
|
+
attr_str = ', '.join(f"{name}:{getattr(self, name)}" for name in all_attrs)
|
|
130
|
+
return f"{self.basic}, {attr_str}"
|
|
131
|
+
|
|
132
|
+
def __str__(self):
|
|
133
|
+
return self.__repr__()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '1.0.8'
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
import json
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class BatchPlaceOrderRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
super().__init__("/openapi/trade/order/batch-place", version='v2', method="POST", body_params={})
|
|
23
|
+
|
|
24
|
+
def set_account_id(self, account_id):
|
|
25
|
+
self.add_body_params("account_id", account_id)
|
|
26
|
+
|
|
27
|
+
def set_batch_orders(self, batch_orders):
|
|
28
|
+
self.add_body_params("batch_orders", batch_orders)
|
|
29
|
+
|
|
30
|
+
def add_custom_headers_from_order(self, batch_orders):
|
|
31
|
+
if not batch_orders:
|
|
32
|
+
return
|
|
33
|
+
|
|
34
|
+
if isinstance(batch_orders, list) and batch_orders[0]:
|
|
35
|
+
first_order = batch_orders[0]
|
|
36
|
+
leg_list = first_order.get("legs")
|
|
37
|
+
if leg_list is not None and isinstance(leg_list, list):
|
|
38
|
+
for sub_leg in leg_list:
|
|
39
|
+
if (sub_leg and isinstance(sub_leg, dict)
|
|
40
|
+
and sub_leg.get("instrument_type") == "OPTION"):
|
|
41
|
+
instrument_type = sub_leg.get("instrument_type")
|
|
42
|
+
market = sub_leg.get("market")
|
|
43
|
+
category = market + "_" + instrument_type
|
|
44
|
+
if category is not None:
|
|
45
|
+
self.add_header("category", category)
|
|
46
|
+
return
|
|
47
|
+
|
|
48
|
+
market = first_order.get("market")
|
|
49
|
+
instrument_type = first_order.get("instrument_type")
|
|
50
|
+
category = market + "_" + instrument_type
|
|
51
|
+
if category is not None:
|
|
52
|
+
self.add_header("category", category)
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# coding=utf-8
|
|
15
15
|
from webull.trade.request.v3.preview_order_request import PreviewOrderRequest
|
|
16
16
|
from webull.trade.request.v3.place_order_request import PlaceOrderRequest
|
|
17
|
+
from webull.trade.request.v3.batch_place_order_request import BatchPlaceOrderRequest
|
|
17
18
|
from webull.trade.request.v3.replace_order_request import ReplaceOrderRequest
|
|
18
19
|
from webull.trade.request.v3.cancel_order_request import CancelOrderRequest
|
|
19
20
|
from webull.trade.request.v3.get_order_detail_request import OrderDetailRequest
|
|
@@ -50,6 +51,18 @@ class OrderOperationV3:
|
|
|
50
51
|
response = self.client.get_response(place_order_request)
|
|
51
52
|
return response
|
|
52
53
|
|
|
54
|
+
def batch_place_order(self, account_id, batch_orders):
|
|
55
|
+
"""
|
|
56
|
+
This interface is currently supported only for Webull US.
|
|
57
|
+
Support for other regions will be available in future updates.
|
|
58
|
+
"""
|
|
59
|
+
batch_place_order_request = BatchPlaceOrderRequest()
|
|
60
|
+
batch_place_order_request.set_account_id(account_id=account_id)
|
|
61
|
+
batch_place_order_request.set_batch_orders(batch_orders=batch_orders)
|
|
62
|
+
batch_place_order_request.add_custom_headers_from_order(batch_orders)
|
|
63
|
+
response = self.client.get_response(batch_place_order_request)
|
|
64
|
+
return response
|
|
65
|
+
|
|
53
66
|
def replace_order(self, account_id, modify_orders, client_combo_order_id=None):
|
|
54
67
|
"""
|
|
55
68
|
This interface is currently supported only for Webull US.
|
|
@@ -317,6 +317,7 @@ webull/trade/request/v2/preview_order_request.py
|
|
|
317
317
|
webull/trade/request/v2/replace_option_request.py
|
|
318
318
|
webull/trade/request/v2/replace_order_request.py
|
|
319
319
|
webull/trade/request/v3/__init__.py
|
|
320
|
+
webull/trade/request/v3/batch_place_order_request.py
|
|
320
321
|
webull/trade/request/v3/cancel_order_request.py
|
|
321
322
|
webull/trade/request/v3/get_order_detail_request.py
|
|
322
323
|
webull/trade/request/v3/get_order_history_request.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '1.0.7'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '1.0.7'
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
-
# source: message.proto
|
|
4
|
-
"""Generated protocol buffer code."""
|
|
5
|
-
from google.protobuf.internal import builder as _builder
|
|
6
|
-
from google.protobuf import descriptor as _descriptor
|
|
7
|
-
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
-
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
-
# @@protoc_insertion_point(imports)
|
|
10
|
-
|
|
11
|
-
_sym_db = _symbol_database.Default()
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rmessage.proto\"Z\n\x05\x42\x61sic\x12\x0e\n\x06symbol\x18\x01 \x01(\t\x12\x15\n\rinstrument_id\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x03 \x01(\t\x12\x17\n\x0ftrading_session\x18\x04 \x01(\t\"\xb6\x01\n\x08Snapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x12\n\ntrade_time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0c\n\x04open\x18\x04 \x01(\t\x12\x0c\n\x04high\x18\x05 \x01(\t\x12\x0b\n\x03low\x18\x06 \x01(\t\x12\x11\n\tpre_close\x18\x07 \x01(\t\x12\x0e\n\x06volume\x18\x08 \x01(\t\x12\x0e\n\x06\x63hange\x18\t \x01(\t\x12\x14\n\x0c\x63hange_ratio\x18\n \x01(\t\"L\n\x05Quote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x15\n\x04\x61sks\x18\x02 \x03(\x0b\x32\x07.AskBid\x12\x15\n\x04\x62ids\x18\x03 \x03(\x0b\x32\x07.AskBid\"X\n\x04Tick\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x0c\n\x04time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0e\n\x06volume\x18\x04 \x01(\t\x12\x0c\n\x04side\x18\x05 \x01(\t\"U\n\x06\x41skBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\x12\x15\n\x05order\x18\x03 \x03(\x0b\x32\x06.Order\x12\x17\n\x06\x62roker\x18\x04 \x03(\x0b\x32\x07.Broker\"#\n\x05Order\x12\x0c\n\x04mpid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\"#\n\x06\x42roker\x12\x0b\n\x03\x62id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3')
|
|
17
|
-
|
|
18
|
-
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
19
|
-
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'message_pb2', globals())
|
|
20
|
-
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
21
|
-
|
|
22
|
-
DESCRIPTOR._options = None
|
|
23
|
-
_BASIC._serialized_start=17
|
|
24
|
-
_BASIC._serialized_end=107
|
|
25
|
-
_SNAPSHOT._serialized_start=110
|
|
26
|
-
_SNAPSHOT._serialized_end=292
|
|
27
|
-
_QUOTE._serialized_start=294
|
|
28
|
-
_QUOTE._serialized_end=370
|
|
29
|
-
_TICK._serialized_start=372
|
|
30
|
-
_TICK._serialized_end=460
|
|
31
|
-
_ASKBID._serialized_start=462
|
|
32
|
-
_ASKBID._serialized_end=547
|
|
33
|
-
_ORDER._serialized_start=549
|
|
34
|
-
_ORDER._serialized_end=584
|
|
35
|
-
_BROKER._serialized_start=586
|
|
36
|
-
_BROKER._serialized_end=621
|
|
37
|
-
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# Copyright 2022 Webull
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
# coding=utf-8
|
|
16
|
-
|
|
17
|
-
from decimal import Decimal
|
|
18
|
-
from webull.data.quotes.subscribe.basic_result import BasicResult
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class SnapshotResult:
|
|
22
|
-
def __init__(self, pb_snapshot):
|
|
23
|
-
self.basic = BasicResult(pb_snapshot.basic)
|
|
24
|
-
self.open = Decimal(pb_snapshot.open) if pb_snapshot.open else None
|
|
25
|
-
self.high = Decimal(pb_snapshot.high) if pb_snapshot.high else None
|
|
26
|
-
self.low = Decimal(pb_snapshot.low) if pb_snapshot.low else None
|
|
27
|
-
self.price = Decimal(pb_snapshot.price) if pb_snapshot.price else None
|
|
28
|
-
self.pre_close = Decimal(
|
|
29
|
-
pb_snapshot.pre_close) if pb_snapshot.pre_close else None
|
|
30
|
-
self.volume = Decimal(
|
|
31
|
-
pb_snapshot.volume) if pb_snapshot.volume else None
|
|
32
|
-
self.change = Decimal(
|
|
33
|
-
pb_snapshot.change) if pb_snapshot.change else None
|
|
34
|
-
self.change_ratio = Decimal(
|
|
35
|
-
pb_snapshot.change_ratio) if pb_snapshot.change_ratio else None
|
|
36
|
-
|
|
37
|
-
def get_basic(self):
|
|
38
|
-
return self.basic
|
|
39
|
-
|
|
40
|
-
def get_open(self):
|
|
41
|
-
return self.open
|
|
42
|
-
|
|
43
|
-
def get_high(self):
|
|
44
|
-
return self.high
|
|
45
|
-
|
|
46
|
-
def get_low(self):
|
|
47
|
-
return self.low
|
|
48
|
-
|
|
49
|
-
def get_price(self):
|
|
50
|
-
return self.price
|
|
51
|
-
|
|
52
|
-
def get_pre_close(self):
|
|
53
|
-
return self.pre_close
|
|
54
|
-
|
|
55
|
-
def get_volume(self):
|
|
56
|
-
return self.volume
|
|
57
|
-
|
|
58
|
-
def get_change(self):
|
|
59
|
-
return self.change
|
|
60
|
-
|
|
61
|
-
def get_change_ratio(self):
|
|
62
|
-
return self.change_ratio
|
|
63
|
-
|
|
64
|
-
def __repr__(self):
|
|
65
|
-
return "%s, open:%s, high:%s, low:%s, price:%s, pre_close:%s, volume:%s, change:%s, change_ratio:%s" \
|
|
66
|
-
% (self.basic, self.open, self.high, self.low, self.price, self.pre_close, self.volume, self.change, self.change_ratio)
|
|
67
|
-
|
|
68
|
-
def __str__(self):
|
|
69
|
-
return self.__repr__()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '1.0.7'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/account/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/assets/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/assets/assets_client.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/data/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/data/data_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/order/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/trade_client.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/samples/trade/trade_client_v2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/auth/credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/cache/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/api_type.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/easy_enum.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/common/region.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/context/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/data/endpoints.json
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/endpoint/__init__.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
|
{webull_openapi_python_sdk-1.0.7 → webull_openapi_python_sdk-1.0.8}/webull/core/http/__init__.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
|