webull-openapi-python-sdk 2.0.1__tar.gz → 2.0.3__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-2.0.1 → webull_openapi_python_sdk-2.0.3}/PKG-INFO +1 -1
- webull_openapi_python_sdk-2.0.3/samples/__init__.py +1 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/data_streaming_client_event.py +1 -1
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_client_v3.py +2 -0
- webull_openapi_python_sdk-2.0.3/webull/__init__.py +1 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/__init__.py +1 -1
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/client.py +13 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/headers.py +2 -1
- webull_openapi_python_sdk-2.0.3/webull/data/__init__.py +3 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/data_streaming_client.py +3 -1
- webull_openapi_python_sdk-2.0.3/webull/data/quotes/subscribe/event_tick_decoder.py +30 -0
- webull_openapi_python_sdk-2.0.3/webull/data/quotes/subscribe/event_tick_result.py +56 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/message_pb2.py +3 -1
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/payload_type.py +2 -1
- webull_openapi_python_sdk-2.0.3/webull/trade/__init__.py +1 -0
- webull_openapi_python_sdk-2.0.3/webull/trade/common/position_intent.py +24 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade_events_client.py +5 -1
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull_openapi_python_sdk.egg-info/PKG-INFO +1 -1
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull_openapi_python_sdk.egg-info/SOURCES.txt +3 -0
- webull_openapi_python_sdk-2.0.1/samples/__init__.py +0 -1
- webull_openapi_python_sdk-2.0.1/webull/__init__.py +0 -1
- webull_openapi_python_sdk-2.0.1/webull/data/__init__.py +0 -3
- webull_openapi_python_sdk-2.0.1/webull/trade/__init__.py +0 -1
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/ChangeLog.txt +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/LICENSE +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/MANIFEST.in +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/NOTICE +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/README.rst +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/account/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/account/account_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/assets/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/assets/assets_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/data_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/data_client_event.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/data_streaming_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/data_streaming_client_async.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/order/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/order/order_option_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/order/order_stock_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_client_v2.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_client_v3_event.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_event_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/setup.cfg +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/setup.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/algorithm/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/algorithm/sha_hmac1.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/algorithm/sha_hmac256.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/composer/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/composer/default_signature_composer.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/credentials.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/signers/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/signers/app_key_signer.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/signers/signer.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/auth/signers/signer_factory.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/cache/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/api_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/easy_enum.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/region.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/compat.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/context/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/context/request_context_holder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/data/endpoints.json +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/data/retry_config.json +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/endpoint/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/endpoint/chained_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/endpoint/default_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/endpoint/local_config_regional_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/endpoint/resolver_endpoint_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/endpoint/user_customized_endpoint_resolver.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/exception/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/exception/error_code.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/exception/error_msg.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/exception/exceptions.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/client_initializer.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/config/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/config/bean/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/config/bean/query_config_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/config/config_operation.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/bean/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/bean/access_token.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/bean/check_token_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/bean/create_token_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/bean/refresh_token_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/token_manager.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/token_operation.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/initializer/token/token_storage.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/method_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/protocol_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/response.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/retry/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/retry/backoff_strategy.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/retry/retry_condition.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/retry/retry_policy.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/retry/retry_policy_context.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/common.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/data.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/desensitize.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/validation.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/category.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/connect_ack.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/contract_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/direction.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/exchange_code.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/exercise_style.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/expiration_cycle.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/instrument_status.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/option_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/subscribe_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/timespan.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/data_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/default_retry_policy.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/exceptions.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/quotes_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/quotes_decoder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/quotes_payload_decoder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/quotes_topic.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/crypto_market_data.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/event_market_data.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/futures_market_data.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/instrument.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/market_data.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/market_streaming_data.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/ask_bid_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/basic_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/broker_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/event_depth_decoder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/event_depth_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/event_snapshot_decoder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/event_snapshot_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/order_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/quote_decoder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/quote_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/snapshot_decoder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/snapshot_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/tick_decoder.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/quotes/subscribe/tick_result.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_batch_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_corp_action_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_crypto_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_crypto_instruments_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_crypto_snapshot_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_eod_bars_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_bars_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_depth_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_events_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_instrument_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_series_categories.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_series_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_snapshot_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_event_tick_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_footprint_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_depth_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_footprint_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_instruments_by_code_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_instruments_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_products_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_snapshot_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_futures_tick_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_historical_bars_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_instruments_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_quotes_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_snapshot_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/get_tick_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/subscribe_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/request/unsubscribe_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/account_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/category.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/combo_ticker_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/combo_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/currency.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/forbid_reason.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/instrument_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/markets.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/order_entrust_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/order_side.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/order_status.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/order_tif.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/order_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/trade_policy.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/trading_date_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/common/trailing_type.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/events/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/events/default_retry_policy.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/events/events_pb2.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/events/events_pb2_grpc.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/events/signature_composer.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/events/types.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/cancel_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_account_balance_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_account_positions_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_account_profile_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_app_subscriptions.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_open_orders_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_order_detail_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_today_orders_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_trade_calendar_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_trade_instrument_detail_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_trade_security_detail_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/get_tradeable_instruments_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/palce_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/place_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/place_order_request_v2.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/replace_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/replace_order_request_v2.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/cancel_option_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/cancel_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/get_account_balance_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/get_account_list.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/get_account_list_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/get_account_positions_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/get_order_detail_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/get_order_history_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/get_order_open_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/palce_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/place_option_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/place_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/preview_option_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/preview_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/replace_option_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v2/replace_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/batch_place_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/cancel_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/get_order_detail_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/get_order_history_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/get_order_open_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/place_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/preview_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/request/v3/replace_order_request.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/account_info.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/order_operation.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/trade_calendar.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/trade_instrument.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/v2/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/v2/account_info_v2.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/v2/order_operation_v2.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/v3/__init__.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade/v3/order_opration_v3.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/trade/trade_client.py +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull_openapi_python_sdk.egg-info/dependency_links.txt +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull_openapi_python_sdk.egg-info/requires.txt +0 -0
- {webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull_openapi_python_sdk.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.0.3'
|
|
@@ -43,7 +43,7 @@ if __name__ == '__main__':
|
|
|
43
43
|
print("connect success with session_id:%s" % quotes_session_id)
|
|
44
44
|
# subscribe
|
|
45
45
|
symbols = ['KXNHLGAME-26JAN21ANACOL-ANA', 'KXNBAGAME-26JAN20LACCHI-LAC']
|
|
46
|
-
sub_types = [SubscribeType.QUOTE.name, SubscribeType.SNAPSHOT.name]
|
|
46
|
+
sub_types = [SubscribeType.QUOTE.name, SubscribeType.SNAPSHOT.name, SubscribeType.TICK.name]
|
|
47
47
|
client.subscribe(symbols, Category.US_EVENT.name, sub_types)
|
|
48
48
|
|
|
49
49
|
def my_quotes_message_func(client, topic, quotes):
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_client_v3.py
RENAMED
|
@@ -247,6 +247,7 @@ if __name__ == '__main__':
|
|
|
247
247
|
# ============================================================
|
|
248
248
|
|
|
249
249
|
# normal option order
|
|
250
|
+
# position_intent: Currently, only the US market is supported, and only options orders are allowed.
|
|
250
251
|
normal_option_client_order_id = uuid.uuid4().hex
|
|
251
252
|
new_normal_option_orders = [
|
|
252
253
|
{
|
|
@@ -259,6 +260,7 @@ if __name__ == '__main__':
|
|
|
259
260
|
"side": "BUY",
|
|
260
261
|
"time_in_force": "GTC",
|
|
261
262
|
"entrust_type": "QTY",
|
|
263
|
+
"position_intent": "BUY_TO_OPEN",
|
|
262
264
|
"legs": [
|
|
263
265
|
{
|
|
264
266
|
"side": "BUY",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.0.3'
|
|
@@ -41,6 +41,7 @@ which was part of Alibaba Group.
|
|
|
41
41
|
|
|
42
42
|
import json
|
|
43
43
|
import logging
|
|
44
|
+
import os
|
|
44
45
|
import platform
|
|
45
46
|
import time
|
|
46
47
|
from logging.handlers import TimedRotatingFileHandler
|
|
@@ -69,6 +70,8 @@ DEFAULT_READ_TIMEOUT = 10
|
|
|
69
70
|
DEFAULT_CONNECTION_TIMEOUT = 5
|
|
70
71
|
DEFAULT_PORT = 443
|
|
71
72
|
DEFAULT_REGION_ID = "us"
|
|
73
|
+
DEFAULT_CLIENT_SOURCE = "sdk"
|
|
74
|
+
CLIENT_SOURCE_ENV = "WEBULL_CLIENT_SOURCE"
|
|
72
75
|
|
|
73
76
|
logger = logging.getLogger(__name__)
|
|
74
77
|
|
|
@@ -254,6 +257,7 @@ class ApiClient:
|
|
|
254
257
|
headers['User-Agent'] = self._compose_ua(request)
|
|
255
258
|
if self.get_token():
|
|
256
259
|
headers['x-access-token'] = self.get_token()
|
|
260
|
+
headers[hd.CLIENT_SOURCE] = self._get_client_source()
|
|
257
261
|
|
|
258
262
|
protocol = request.get_protocol_type()
|
|
259
263
|
url = request.get_url()
|
|
@@ -270,6 +274,15 @@ class ApiClient:
|
|
|
270
274
|
verify=self.get_verify())
|
|
271
275
|
response.set_content(body, "utf-8")
|
|
272
276
|
return response
|
|
277
|
+
|
|
278
|
+
@staticmethod
|
|
279
|
+
def _get_client_source():
|
|
280
|
+
client_source = os.environ.get(CLIENT_SOURCE_ENV)
|
|
281
|
+
if client_source is not None:
|
|
282
|
+
client_source = client_source.strip()
|
|
283
|
+
if client_source:
|
|
284
|
+
return client_source
|
|
285
|
+
return DEFAULT_CLIENT_SOURCE
|
|
273
286
|
|
|
274
287
|
def _implementation_of_do_action(self, request, signer=None):
|
|
275
288
|
if not isinstance(request, BaseRequest):
|
|
@@ -40,6 +40,7 @@ which was part of Alibaba Group.
|
|
|
40
40
|
"""
|
|
41
41
|
|
|
42
42
|
REQUEST_ID = "X-Request-Id"
|
|
43
|
+
CLIENT_SOURCE = "x-webull-client-source"
|
|
43
44
|
APP_KEY = "x-app-key"
|
|
44
45
|
SIGNATURE = "x-signature"
|
|
45
46
|
SIGN_ALGORITHM = "x-signature-algorithm"
|
|
@@ -54,4 +55,4 @@ ACCESS_TOKEN = "x-access-token"
|
|
|
54
55
|
NATIVE_HOST = "Host"
|
|
55
56
|
NATIVE_CONTENT_TYPE = "Content-Type"
|
|
56
57
|
NATIVE_CONTENT_LENGTH = "Content-Length"
|
|
57
|
-
NATIVE_USER_AGENT = "User-Agent"
|
|
58
|
+
NATIVE_USER_AGENT = "User-Agent"
|
|
@@ -18,8 +18,9 @@ from webull.data.internal.quotes_client import QuotesClient, LOG_ERR
|
|
|
18
18
|
from webull.data.quotes.market_streaming_data import MarketDataStreaming
|
|
19
19
|
from webull.data.quotes.subscribe.event_depth_decoder import EventDepthDecoder
|
|
20
20
|
from webull.data.quotes.subscribe.event_snapshot_decoder import EventSnapshotDecoder
|
|
21
|
+
from webull.data.quotes.subscribe.event_tick_decoder import EventTickDecoder
|
|
21
22
|
from webull.data.quotes.subscribe.payload_type import PAYLOAD_TYPE_QUOTE, PAYLOAD_TYPE_SHAPSHOT, PAYLOAD_TYPE_TICK, \
|
|
22
|
-
PAYLOAD_TYPE_EVENT_SHAPSHOT, PAYLOAD_TYPE_EVENT_DEPTH
|
|
23
|
+
PAYLOAD_TYPE_EVENT_SHAPSHOT, PAYLOAD_TYPE_EVENT_DEPTH, PAYLOAD_TYPE_EVENT_TICK
|
|
23
24
|
from webull.data.quotes.subscribe.quote_decoder import QuoteDecoder
|
|
24
25
|
from webull.data.quotes.subscribe.snapshot_decoder import SnapshotDecoder
|
|
25
26
|
from webull.data.quotes.subscribe.tick_decoder import TickDecoder
|
|
@@ -44,6 +45,7 @@ class DataStreamingClient(QuotesClient):
|
|
|
44
45
|
self.register_payload_decoder(PAYLOAD_TYPE_TICK, TickDecoder())
|
|
45
46
|
self.register_payload_decoder(PAYLOAD_TYPE_EVENT_DEPTH, EventDepthDecoder())
|
|
46
47
|
self.register_payload_decoder(PAYLOAD_TYPE_EVENT_SHAPSHOT, EventSnapshotDecoder())
|
|
48
|
+
self.register_payload_decoder(PAYLOAD_TYPE_EVENT_TICK, EventTickDecoder())
|
|
47
49
|
|
|
48
50
|
@property
|
|
49
51
|
def on_connect_success(self):
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
# coding=utf-8
|
|
15
|
+
|
|
16
|
+
from webull.data.quotes.subscribe.message_pb2 import EventTick
|
|
17
|
+
from webull.data.quotes.subscribe.event_tick_result import EventTickResult
|
|
18
|
+
|
|
19
|
+
from webull.data.internal.quotes_payload_decoder import BaseQuotesPayloadDecoder
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class EventTickDecoder(BaseQuotesPayloadDecoder):
|
|
24
|
+
def __init__(self):
|
|
25
|
+
super().__init__()
|
|
26
|
+
|
|
27
|
+
def parse(self, payload):
|
|
28
|
+
eventTick = EventTick()
|
|
29
|
+
eventTick.ParseFromString(payload)
|
|
30
|
+
return EventTickResult(eventTick)
|
|
@@ -0,0 +1,56 @@
|
|
|
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 EventTickResult:
|
|
22
|
+
def __init__(self, pb_event_tick):
|
|
23
|
+
self.basic = BasicResult(pb_event_tick.basic)
|
|
24
|
+
self.time = pb_event_tick.time
|
|
25
|
+
self.yes_price = Decimal(pb_event_tick.yes_price) if pb_event_tick.yes_price else None
|
|
26
|
+
self.no_price = Decimal(pb_event_tick.no_price) if pb_event_tick.no_price else None
|
|
27
|
+
self.volume = pb_event_tick.volume
|
|
28
|
+
self.side = pb_event_tick.side
|
|
29
|
+
self.trade_id = pb_event_tick.trade_id
|
|
30
|
+
|
|
31
|
+
def get_basic(self):
|
|
32
|
+
return self.basic
|
|
33
|
+
|
|
34
|
+
def get_time(self):
|
|
35
|
+
return self.time
|
|
36
|
+
|
|
37
|
+
def get_yes_price(self):
|
|
38
|
+
return self.yes_price
|
|
39
|
+
|
|
40
|
+
def get_no_price(self):
|
|
41
|
+
return self.no_price
|
|
42
|
+
|
|
43
|
+
def get_volume(self):
|
|
44
|
+
return self.volume
|
|
45
|
+
|
|
46
|
+
def get_side(self):
|
|
47
|
+
return self.side
|
|
48
|
+
|
|
49
|
+
def get_trade_id(self):
|
|
50
|
+
return self.trade_id
|
|
51
|
+
|
|
52
|
+
def __repr__(self):
|
|
53
|
+
return "basic: %s,time: %s,yes_price: %s,no_price:%s,volume:%s,side:%s,trade_id:%s" % (self.basic, self.time, self.yes_price, self.no_price, self.volume, self.side, self.trade_id)
|
|
54
|
+
|
|
55
|
+
def __str__(self):
|
|
56
|
+
return self.__repr__()
|
|
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
|
|
|
13
13
|
|
|
14
14
|
|
|
15
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(\t\"\x8d\x02\n\rEventSnapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\r\n\x05price\x18\x02 \x01(\t\x12\x0e\n\x06volume\x18\x03 \x01(\t\x12\x17\n\x0flast_trade_time\x18\x04 \x01(\t\x12\x15\n\ropen_interest\x18\x05 \x01(\t\x12\x0f\n\x07yes_ask\x18\x06 \x01(\t\x12\x0f\n\x07yes_bid\x18\x07 \x01(\t\x12\x14\n\x0cyes_ask_size\x18\x08 \x01(\t\x12\x14\n\x0cyes_bid_size\x18\t \x01(\t\x12\x0e\n\x06no_ask\x18\n \x01(\t\x12\x0e\n\x06no_bid\x18\x0b \x01(\t\x12\x13\n\x0bno_ask_size\x18\x0c \x01(\t\x12\x13\n\x0bno_bid_size\x18\r \x01(\t\"b\n\nEventQuote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x1e\n\x08yes_bids\x18\x02 \x03(\x0b\x32\x0c.EventAskBid\x12\x1d\n\x07no_bids\x18\x03 \x03(\x0b\x32\x0c.EventAskBid\"*\n\x0b\x45ventAskBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\tb\x06proto3')
|
|
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(\t\"\x8d\x02\n\rEventSnapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\r\n\x05price\x18\x02 \x01(\t\x12\x0e\n\x06volume\x18\x03 \x01(\t\x12\x17\n\x0flast_trade_time\x18\x04 \x01(\t\x12\x15\n\ropen_interest\x18\x05 \x01(\t\x12\x0f\n\x07yes_ask\x18\x06 \x01(\t\x12\x0f\n\x07yes_bid\x18\x07 \x01(\t\x12\x14\n\x0cyes_ask_size\x18\x08 \x01(\t\x12\x14\n\x0cyes_bid_size\x18\t \x01(\t\x12\x0e\n\x06no_ask\x18\n \x01(\t\x12\x0e\n\x06no_bid\x18\x0b \x01(\t\x12\x13\n\x0bno_ask_size\x18\x0c \x01(\t\x12\x13\n\x0bno_bid_size\x18\r \x01(\t\"b\n\nEventQuote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x1e\n\x08yes_bids\x18\x02 \x03(\x0b\x32\x0c.EventAskBid\x12\x1d\n\x07no_bids\x18\x03 \x03(\x0b\x32\x0c.EventAskBid\"*\n\x0b\x45ventAskBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\"\x85\x01\n\tEventTick\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x11\n\tyes_price\x18\x02 \x01(\t\x12\x10\n\x08no_price\x18\x03 \x01(\t\x12\x0e\n\x06volume\x18\x04 \x01(\t\x12\x0c\n\x04side\x18\x05 \x01(\t\x12\x10\n\x08trade_id\x18\x06 \x01(\t\x12\x0c\n\x04time\x18\x07 \x01(\tb\x06proto3')
|
|
17
17
|
|
|
18
18
|
_globals = globals()
|
|
19
19
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -40,4 +40,6 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
40
40
|
_globals['_EVENTQUOTE']._serialized_end=1281
|
|
41
41
|
_globals['_EVENTASKBID']._serialized_start=1283
|
|
42
42
|
_globals['_EVENTASKBID']._serialized_end=1325
|
|
43
|
+
_globals['_EVENTTICK']._serialized_start=1328
|
|
44
|
+
_globals['_EVENTTICK']._serialized_end=1461
|
|
43
45
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -18,4 +18,5 @@ PAYLOAD_TYPE_QUOTE = 'quote'
|
|
|
18
18
|
PAYLOAD_TYPE_SHAPSHOT = 'snapshot'
|
|
19
19
|
PAYLOAD_TYPE_TICK = 'tick'
|
|
20
20
|
PAYLOAD_TYPE_EVENT_DEPTH = 'event-quote'
|
|
21
|
-
PAYLOAD_TYPE_EVENT_SHAPSHOT = 'event-snapshot'
|
|
21
|
+
PAYLOAD_TYPE_EVENT_SHAPSHOT = 'event-snapshot'
|
|
22
|
+
PAYLOAD_TYPE_EVENT_TICK = 'event-tick'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.0.3'
|
|
@@ -0,0 +1,24 @@
|
|
|
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 webull.core.common.easy_enum import EasyEnum
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class OrderStatus(EasyEnum):
|
|
21
|
+
BUY_TO_OPEN = (1, "BUY_TO_OPEN")
|
|
22
|
+
BUY_TO_CLOSE = (2, "BUY_TO_CLOSE")
|
|
23
|
+
SELL_TO_OPEN = (3, "SELL_TO_OPEN")
|
|
24
|
+
SELL_TO_CLOSE = (4, "SELL_TO_CLOSE")
|
|
@@ -68,8 +68,12 @@ class TradeEventsClient():
|
|
|
68
68
|
self._on_log = None
|
|
69
69
|
|
|
70
70
|
def _build_request(self, app_key, app_secret, accounts):
|
|
71
|
+
if self._region_id == 'us':
|
|
72
|
+
subscribeType = 3
|
|
73
|
+
else:
|
|
74
|
+
subscribeType = 1
|
|
71
75
|
request = pb.SubscribeRequest(
|
|
72
|
-
subscribeType=
|
|
76
|
+
subscribeType= subscribeType, # 1、2、3 allowed now
|
|
73
77
|
timestamp=int(time.time() * 1000), # millis
|
|
74
78
|
accounts=accounts,
|
|
75
79
|
)
|
|
@@ -128,6 +128,8 @@ webull/data/quotes/subscribe/event_depth_decoder.py
|
|
|
128
128
|
webull/data/quotes/subscribe/event_depth_result.py
|
|
129
129
|
webull/data/quotes/subscribe/event_snapshot_decoder.py
|
|
130
130
|
webull/data/quotes/subscribe/event_snapshot_result.py
|
|
131
|
+
webull/data/quotes/subscribe/event_tick_decoder.py
|
|
132
|
+
webull/data/quotes/subscribe/event_tick_result.py
|
|
131
133
|
webull/data/quotes/subscribe/message_pb2.py
|
|
132
134
|
webull/data/quotes/subscribe/order_result.py
|
|
133
135
|
webull/data/quotes/subscribe/payload_type.py
|
|
@@ -185,6 +187,7 @@ webull/trade/common/order_side.py
|
|
|
185
187
|
webull/trade/common/order_status.py
|
|
186
188
|
webull/trade/common/order_tif.py
|
|
187
189
|
webull/trade/common/order_type.py
|
|
190
|
+
webull/trade/common/position_intent.py
|
|
188
191
|
webull/trade/common/trade_policy.py
|
|
189
192
|
webull/trade/common/trading_date_type.py
|
|
190
193
|
webull/trade/common/trailing_type.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.0.1'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.0.1'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '1.1.0'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/account/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/assets/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/assets/assets_client.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/data/data_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/order/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_client.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/samples/trade/trade_client_v2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/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-2.0.1 → webull_openapi_python_sdk-2.0.3}/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-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/cache/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/api_type.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/easy_enum.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/common/region.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/context/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/data/endpoints.json
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/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
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/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
|
|
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-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/method_type.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/request.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/http/response.py
RENAMED
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/retry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/common.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/data.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/desensitize.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/core/utils/validation.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/__init__.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/category.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/direction.py
RENAMED
|
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-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/common/timespan.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/data_client.py
RENAMED
|
File without changes
|
{webull_openapi_python_sdk-2.0.1 → webull_openapi_python_sdk-2.0.3}/webull/data/internal/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|