webull-openapi-python-sdk 1.0.2__tar.gz → 1.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/PKG-INFO +1 -1
  2. webull_openapi_python_sdk-1.0.4/samples/__init__.py +1 -0
  3. webull_openapi_python_sdk-1.0.4/samples/trade/trade_client_v2.py +302 -0
  4. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/samples/trade/trade_event_client.py +13 -11
  5. webull_openapi_python_sdk-1.0.4/webull/__init__.py +1 -0
  6. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/__init__.py +1 -1
  7. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/client_initializer.py +43 -7
  8. webull_openapi_python_sdk-1.0.4/webull/core/http/initializer/config/bean/query_config_request.py +41 -0
  9. webull_openapi_python_sdk-1.0.4/webull/core/http/initializer/config/config_operation.py +49 -0
  10. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/token/bean/check_token_request.py +1 -1
  11. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/token/bean/create_token_request.py +1 -1
  12. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/token/bean/refresh_token_request.py +1 -1
  13. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/token/token_operation.py +0 -2
  14. webull_openapi_python_sdk-1.0.4/webull/data/__init__.py +3 -0
  15. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/data_client.py +3 -0
  16. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_batch_historical_bars_request.py +1 -1
  17. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_historical_bars_request.py +1 -1
  18. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_instruments_request.py +1 -1
  19. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_quotes_request.py +1 -1
  20. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_snapshot_request.py +1 -1
  21. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_tick_request.py +1 -1
  22. webull_openapi_python_sdk-1.0.4/webull/trade/__init__.py +2 -0
  23. webull_openapi_python_sdk-1.0.4/webull/trade/request/palce_order_request.py +92 -0
  24. webull_openapi_python_sdk-1.0.2/webull/trade/request/palce_order_request.py → webull_openapi_python_sdk-1.0.4/webull/trade/request/place_order_request.py +1 -0
  25. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/cancel_option_request.py +2 -2
  26. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/cancel_order_request.py +2 -2
  27. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/get_account_balance_request.py +1 -1
  28. webull_openapi_python_sdk-1.0.4/webull/trade/request/v2/get_account_list.py +26 -0
  29. webull_openapi_python_sdk-1.0.2/webull/trade/request/v2/get_account_list.py → webull_openapi_python_sdk-1.0.4/webull/trade/request/v2/get_account_list_request.py +1 -1
  30. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/get_account_positions_request.py +1 -1
  31. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/get_order_detail_request.py +1 -1
  32. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/get_order_history_request.py +5 -2
  33. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/get_order_open_request.py +5 -2
  34. webull_openapi_python_sdk-1.0.4/webull/trade/request/v2/palce_order_request.py +44 -0
  35. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/place_option_request.py +7 -22
  36. webull_openapi_python_sdk-1.0.4/webull/trade/request/v2/place_order_request.py +44 -0
  37. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/preview_option_request.py +6 -2
  38. webull_openapi_python_sdk-1.0.4/webull/trade/request/v2/preview_order_request.py +29 -0
  39. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/v2/replace_option_request.py +6 -2
  40. webull_openapi_python_sdk-1.0.4/webull/trade/request/v2/replace_order_request.py +29 -0
  41. webull_openapi_python_sdk-1.0.4/webull/trade/trade/__init__.py +0 -0
  42. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade/order_operation.py +5 -2
  43. webull_openapi_python_sdk-1.0.4/webull/trade/trade/v2/__init__.py +0 -0
  44. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade/v2/account_info_v2.py +8 -11
  45. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade/v2/order_operation_v2.py +95 -69
  46. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull_openapi_python_sdk.egg-info/PKG-INFO +1 -1
  47. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull_openapi_python_sdk.egg-info/SOURCES.txt +7 -0
  48. webull_openapi_python_sdk-1.0.2/samples/__init__.py +0 -1
  49. webull_openapi_python_sdk-1.0.2/samples/trade/trade_client_v2.py +0 -185
  50. webull_openapi_python_sdk-1.0.2/webull/__init__.py +0 -1
  51. webull_openapi_python_sdk-1.0.2/webull/data/__init__.py +0 -3
  52. webull_openapi_python_sdk-1.0.2/webull/trade/__init__.py +0 -2
  53. webull_openapi_python_sdk-1.0.2/webull/trade/request/v2/palce_order_request.py +0 -87
  54. webull_openapi_python_sdk-1.0.2/webull/trade/request/v2/preview_order_request.py +0 -59
  55. webull_openapi_python_sdk-1.0.2/webull/trade/request/v2/replace_order_request.py +0 -57
  56. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/ChangeLog.txt +0 -0
  57. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/LICENSE +0 -0
  58. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/MANIFEST.in +0 -0
  59. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/NOTICE +0 -0
  60. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/README.rst +0 -0
  61. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/samples/data/__init__.py +0 -0
  62. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/samples/data/data_client.py +0 -0
  63. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/samples/data/data_streaming_client.py +0 -0
  64. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/samples/data/data_streaming_client_async.py +0 -0
  65. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/samples/trade/__init__.py +0 -0
  66. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/samples/trade/trade_client.py +0 -0
  67. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/setup.cfg +0 -0
  68. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/setup.py +0 -0
  69. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/__init__.py +0 -0
  70. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/algorithm/__init__.py +0 -0
  71. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/algorithm/sha_hmac1.py +0 -0
  72. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/algorithm/sha_hmac256.py +0 -0
  73. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/composer/__init__.py +0 -0
  74. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/composer/default_signature_composer.py +0 -0
  75. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/credentials.py +0 -0
  76. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/signers/__init__.py +0 -0
  77. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/signers/app_key_signer.py +0 -0
  78. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/signers/signer.py +0 -0
  79. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/auth/signers/signer_factory.py +0 -0
  80. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/cache/__init__.py +0 -0
  81. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/client.py +0 -0
  82. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/common/__init__.py +0 -0
  83. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/common/api_type.py +0 -0
  84. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/common/easy_enum.py +0 -0
  85. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/common/region.py +0 -0
  86. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/compat.py +0 -0
  87. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/context/__init__.py +0 -0
  88. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/context/request_context_holder.py +0 -0
  89. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/data/endpoints.json +0 -0
  90. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/data/retry_config.json +0 -0
  91. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/endpoint/__init__.py +0 -0
  92. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/endpoint/chained_endpoint_resolver.py +0 -0
  93. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/endpoint/default_endpoint_resolver.py +0 -0
  94. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/endpoint/local_config_regional_endpoint_resolver.py +0 -0
  95. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/endpoint/resolver_endpoint_request.py +0 -0
  96. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/endpoint/user_customized_endpoint_resolver.py +0 -0
  97. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/exception/__init__.py +0 -0
  98. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/exception/error_code.py +0 -0
  99. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/exception/error_msg.py +0 -0
  100. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/exception/exceptions.py +0 -0
  101. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/headers.py +0 -0
  102. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/__init__.py +0 -0
  103. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/__init__.py +0 -0
  104. {webull_openapi_python_sdk-1.0.2/webull/core/http/initializer/token → webull_openapi_python_sdk-1.0.4/webull/core/http/initializer/config}/__init__.py +0 -0
  105. {webull_openapi_python_sdk-1.0.2/webull/core/http/initializer/token → webull_openapi_python_sdk-1.0.4/webull/core/http/initializer/config}/bean/__init__.py +0 -0
  106. {webull_openapi_python_sdk-1.0.2/webull/core/retry → webull_openapi_python_sdk-1.0.4/webull/core/http/initializer/token}/__init__.py +0 -0
  107. {webull_openapi_python_sdk-1.0.2/webull/core/utils → webull_openapi_python_sdk-1.0.4/webull/core/http/initializer/token/bean}/__init__.py +0 -0
  108. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/token/bean/access_token.py +0 -0
  109. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/initializer/token/token_manager.py +0 -0
  110. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/method_type.py +0 -0
  111. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/protocol_type.py +0 -0
  112. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/request.py +0 -0
  113. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/http/response.py +0 -0
  114. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/request.py +0 -0
  115. {webull_openapi_python_sdk-1.0.2/webull/core/vendored → webull_openapi_python_sdk-1.0.4/webull/core/retry}/__init__.py +0 -0
  116. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/retry/backoff_strategy.py +0 -0
  117. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/retry/retry_condition.py +0 -0
  118. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/retry/retry_policy.py +0 -0
  119. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/retry/retry_policy_context.py +0 -0
  120. {webull_openapi_python_sdk-1.0.2/webull/core/vendored/requests/packages/urllib3/contrib → webull_openapi_python_sdk-1.0.4/webull/core/utils}/__init__.py +0 -0
  121. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/utils/common.py +0 -0
  122. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/utils/data.py +0 -0
  123. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/utils/desensitize.py +0 -0
  124. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/utils/validation.py +0 -0
  125. {webull_openapi_python_sdk-1.0.2/webull/core/vendored/requests/packages/urllib3/contrib/_securetransport → webull_openapi_python_sdk-1.0.4/webull/core/vendored}/__init__.py +0 -0
  126. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/__init__.py +0 -0
  127. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/__version__.py +0 -0
  128. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/_internal_utils.py +0 -0
  129. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/adapters.py +0 -0
  130. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/api.py +0 -0
  131. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/auth.py +0 -0
  132. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/certs.py +0 -0
  133. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/compat.py +0 -0
  134. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/cookies.py +0 -0
  135. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/exceptions.py +0 -0
  136. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/help.py +0 -0
  137. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/hooks.py +0 -0
  138. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/models.py +0 -0
  139. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/__init__.py +0 -0
  140. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/certifi/__init__.py +0 -0
  141. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/certifi/__main__.py +0 -0
  142. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/certifi/cacert.pem +0 -0
  143. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/certifi/core.py +0 -0
  144. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/__init__.py +0 -0
  145. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/big5freq.py +0 -0
  146. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/big5prober.py +0 -0
  147. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/chardistribution.py +0 -0
  148. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/charsetgroupprober.py +0 -0
  149. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/charsetprober.py +0 -0
  150. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/cli/__init__.py +0 -0
  151. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/cli/chardetect.py +0 -0
  152. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/codingstatemachine.py +0 -0
  153. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/compat.py +0 -0
  154. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/cp949prober.py +0 -0
  155. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/enums.py +0 -0
  156. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/escprober.py +0 -0
  157. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/escsm.py +0 -0
  158. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/eucjpprober.py +0 -0
  159. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/euckrfreq.py +0 -0
  160. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/euckrprober.py +0 -0
  161. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/euctwfreq.py +0 -0
  162. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/euctwprober.py +0 -0
  163. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/gb2312freq.py +0 -0
  164. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/gb2312prober.py +0 -0
  165. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/hebrewprober.py +0 -0
  166. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/jisfreq.py +0 -0
  167. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/jpcntx.py +0 -0
  168. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/langbulgarianmodel.py +0 -0
  169. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/langcyrillicmodel.py +0 -0
  170. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/langgreekmodel.py +0 -0
  171. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/langhebrewmodel.py +0 -0
  172. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/langhungarianmodel.py +0 -0
  173. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/langthaimodel.py +0 -0
  174. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/langturkishmodel.py +0 -0
  175. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/latin1prober.py +0 -0
  176. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/mbcharsetprober.py +0 -0
  177. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/mbcsgroupprober.py +0 -0
  178. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/mbcssm.py +0 -0
  179. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/sbcharsetprober.py +0 -0
  180. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/sbcsgroupprober.py +0 -0
  181. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/sjisprober.py +0 -0
  182. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/universaldetector.py +0 -0
  183. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/utf8prober.py +0 -0
  184. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/chardet/version.py +0 -0
  185. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/__init__.py +0 -0
  186. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/_collections.py +0 -0
  187. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/connection.py +0 -0
  188. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/connectionpool.py +0 -0
  189. {webull_openapi_python_sdk-1.0.2/webull/core/vendored/requests/packages/urllib3/packages/backports → webull_openapi_python_sdk-1.0.4/webull/core/vendored/requests/packages/urllib3/contrib}/__init__.py +0 -0
  190. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/_appengine_environ.py +0 -0
  191. {webull_openapi_python_sdk-1.0.2/webull/data/common → webull_openapi_python_sdk-1.0.4/webull/core/vendored/requests/packages/urllib3/contrib/_securetransport}/__init__.py +0 -0
  192. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/_securetransport/bindings.py +0 -0
  193. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/_securetransport/low_level.py +0 -0
  194. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/appengine.py +0 -0
  195. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/ntlmpool.py +0 -0
  196. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/pyopenssl.py +0 -0
  197. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/securetransport.py +0 -0
  198. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/contrib/socks.py +0 -0
  199. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/exceptions.py +0 -0
  200. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/fields.py +0 -0
  201. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/filepost.py +0 -0
  202. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/packages/__init__.py +0 -0
  203. {webull_openapi_python_sdk-1.0.2/webull/data/internal → webull_openapi_python_sdk-1.0.4/webull/core/vendored/requests/packages/urllib3/packages/backports}/__init__.py +0 -0
  204. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/packages/backports/makefile.py +0 -0
  205. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/packages/ordered_dict.py +0 -0
  206. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/packages/six.py +0 -0
  207. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/packages/socks.py +0 -0
  208. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py +0 -0
  209. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py +0 -0
  210. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/poolmanager.py +0 -0
  211. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/request.py +0 -0
  212. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/response.py +0 -0
  213. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/__init__.py +0 -0
  214. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/connection.py +0 -0
  215. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/queue.py +0 -0
  216. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/request.py +0 -0
  217. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/response.py +0 -0
  218. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/retry.py +0 -0
  219. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/selectors.py +0 -0
  220. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/ssl_.py +0 -0
  221. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/timeout.py +0 -0
  222. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/url.py +0 -0
  223. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages/urllib3/util/wait.py +0 -0
  224. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/packages.py +0 -0
  225. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/sessions.py +0 -0
  226. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/status_codes.py +0 -0
  227. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/structures.py +0 -0
  228. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/requests/utils.py +0 -0
  229. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/core/vendored/six.py +0 -0
  230. {webull_openapi_python_sdk-1.0.2/webull/data/quotes → webull_openapi_python_sdk-1.0.4/webull/data/common}/__init__.py +0 -0
  231. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/category.py +0 -0
  232. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/connect_ack.py +0 -0
  233. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/direction.py +0 -0
  234. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/exchange_code.py +0 -0
  235. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/exercise_style.py +0 -0
  236. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/expiration_cycle.py +0 -0
  237. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/instrument_status.py +0 -0
  238. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/option_type.py +0 -0
  239. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/subscribe_type.py +0 -0
  240. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/common/timespan.py +0 -0
  241. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/data_streaming_client.py +0 -0
  242. {webull_openapi_python_sdk-1.0.2/webull/data/quotes/subscribe → webull_openapi_python_sdk-1.0.4/webull/data/internal}/__init__.py +0 -0
  243. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/internal/default_retry_policy.py +0 -0
  244. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/internal/exceptions.py +0 -0
  245. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/internal/quotes_client.py +0 -0
  246. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/internal/quotes_decoder.py +0 -0
  247. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/internal/quotes_payload_decoder.py +0 -0
  248. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/internal/quotes_topic.py +0 -0
  249. {webull_openapi_python_sdk-1.0.2/webull/data/request → webull_openapi_python_sdk-1.0.4/webull/data/quotes}/__init__.py +0 -0
  250. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/instrument.py +0 -0
  251. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/market_data.py +0 -0
  252. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/market_streaming_data.py +0 -0
  253. {webull_openapi_python_sdk-1.0.2/webull/trade/common → webull_openapi_python_sdk-1.0.4/webull/data/quotes/subscribe}/__init__.py +0 -0
  254. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/ask_bid_result.py +0 -0
  255. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/basic_result.py +0 -0
  256. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/broker_result.py +0 -0
  257. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/message_pb2.py +0 -0
  258. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/order_result.py +0 -0
  259. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/payload_type.py +0 -0
  260. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/quote_decoder.py +0 -0
  261. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/quote_result.py +0 -0
  262. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/snapshot_decoder.py +0 -0
  263. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/snapshot_result.py +0 -0
  264. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/tick_decoder.py +0 -0
  265. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/quotes/subscribe/tick_result.py +0 -0
  266. {webull_openapi_python_sdk-1.0.2/webull/trade/events → webull_openapi_python_sdk-1.0.4/webull/data/request}/__init__.py +0 -0
  267. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_corp_action_request.py +0 -0
  268. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/get_eod_bars_request.py +0 -0
  269. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/subscribe_request.py +0 -0
  270. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/data/request/unsubscribe_request.py +0 -0
  271. {webull_openapi_python_sdk-1.0.2/webull/trade/request → webull_openapi_python_sdk-1.0.4/webull/trade/common}/__init__.py +0 -0
  272. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/account_type.py +0 -0
  273. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/category.py +0 -0
  274. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/combo_ticker_type.py +0 -0
  275. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/combo_type.py +0 -0
  276. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/currency.py +0 -0
  277. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/forbid_reason.py +0 -0
  278. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/instrument_type.py +0 -0
  279. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/markets.py +0 -0
  280. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/order_entrust_type.py +0 -0
  281. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/order_side.py +0 -0
  282. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/order_status.py +0 -0
  283. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/order_tif.py +0 -0
  284. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/order_type.py +0 -0
  285. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/trade_policy.py +0 -0
  286. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/trading_date_type.py +0 -0
  287. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/common/trailing_type.py +0 -0
  288. {webull_openapi_python_sdk-1.0.2/webull/trade/request/v2 → webull_openapi_python_sdk-1.0.4/webull/trade/events}/__init__.py +0 -0
  289. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/events/default_retry_policy.py +0 -0
  290. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/events/events_pb2.py +0 -0
  291. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/events/events_pb2_grpc.py +0 -0
  292. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/events/signature_composer.py +0 -0
  293. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/events/types.py +0 -0
  294. {webull_openapi_python_sdk-1.0.2/webull/trade/trade → webull_openapi_python_sdk-1.0.4/webull/trade/request}/__init__.py +0 -0
  295. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/cancel_order_request.py +0 -0
  296. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_account_balance_request.py +0 -0
  297. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_account_positions_request.py +0 -0
  298. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_account_profile_request.py +0 -0
  299. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_app_subscriptions.py +0 -0
  300. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_open_orders_request.py +0 -0
  301. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_order_detail_request.py +0 -0
  302. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_today_orders_request.py +0 -0
  303. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_trade_calendar_request.py +0 -0
  304. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_trade_instrument_detail_request.py +0 -0
  305. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_trade_security_detail_request.py +0 -0
  306. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/get_tradeable_instruments_request.py +0 -0
  307. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/place_order_request_v2.py +0 -0
  308. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/replace_order_request.py +0 -0
  309. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/request/replace_order_request_v2.py +0 -0
  310. {webull_openapi_python_sdk-1.0.2/webull/trade/trade → webull_openapi_python_sdk-1.0.4/webull/trade/request}/v2/__init__.py +0 -0
  311. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade/account_info.py +0 -0
  312. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade/trade_calendar.py +0 -0
  313. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade/trade_instrument.py +0 -0
  314. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade_client.py +0 -0
  315. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull/trade/trade_events_client.py +0 -0
  316. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull_openapi_python_sdk.egg-info/dependency_links.txt +0 -0
  317. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull_openapi_python_sdk.egg-info/requires.txt +0 -0
  318. {webull_openapi_python_sdk-1.0.2 → webull_openapi_python_sdk-1.0.4}/webull_openapi_python_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webull-openapi-python-sdk
3
- Version: 1.0.2
3
+ Version: 1.0.4
4
4
  Summary: Webull Python SDK.
5
5
  Home-page:
6
6
  Author: Webull
@@ -0,0 +1 @@
1
+ __version__ = "1.0.4"
@@ -0,0 +1,302 @@
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
+ import json
16
+ import uuid
17
+ from time import sleep
18
+
19
+ from webull.core.client import ApiClient
20
+ from webull.trade.trade_client import TradeClient
21
+
22
+ optional_api_endpoint = "<api_endpoint>"
23
+ your_app_key = "<your_app_key>"
24
+ your_app_secret = "<your_app_secret>"
25
+ region_id = "<region_id>"
26
+ account_id = "<your_account_id>"
27
+ api_client = ApiClient(your_app_key, your_app_secret, region_id)
28
+ api_client.add_endpoint(region_id, optional_api_endpoint)
29
+
30
+
31
+ if __name__ == '__main__':
32
+ trade_client = TradeClient(api_client)
33
+
34
+ res = trade_client.account_v2.get_account_list()
35
+ if res.status_code == 200:
36
+ print('get account list:', res.json())
37
+
38
+ res = trade_client.account_v2.get_account_balance(account_id)
39
+ if res.status_code == 200:
40
+ print('get account balance res:', res.json())
41
+
42
+ res = trade_client.account_v2.get_account_position(account_id)
43
+ if res.status_code == 200:
44
+ print('get account position res:', res.json())
45
+
46
+ # simple order
47
+ client_order_id = uuid.uuid4().hex
48
+ print('client order id:', client_order_id)
49
+ new_simple_orders = [
50
+ {
51
+ "combo_type": "NORMAL",
52
+ "client_order_id": client_order_id,
53
+ "symbol": "AAPL",
54
+ "instrument_type": "EQUITY",
55
+ "market": "US",
56
+ "order_type": "LIMIT",
57
+ "limit_price": "188",
58
+ "quantity": "1",
59
+ "support_trading_session": "N",
60
+ "side": "BUY",
61
+ "time_in_force": "DAY",
62
+ "entrust_type": "QTY"
63
+ }
64
+ ]
65
+
66
+ res = trade_client.order_v2.preview_order(account_id, new_simple_orders)
67
+ if res.status_code == 200:
68
+ print('preview order res:', res.json())
69
+
70
+ res = trade_client.order_v2.place_order(account_id, new_simple_orders)
71
+ if res.status_code == 200:
72
+ print('place order res:', res.json())
73
+ sleep(3)
74
+
75
+ modify_simple_orders = [
76
+ {
77
+ "client_order_id": client_order_id,
78
+ "quantity": "100",
79
+ "limit_price": "200"
80
+ }
81
+ ]
82
+ res = trade_client.order_v2.replace_order(account_id, modify_simple_orders)
83
+ if res.status_code == 200:
84
+ print('replace order res:', res.json())
85
+ sleep(3)
86
+
87
+ res = trade_client.order_v2.cancel_order(account_id, client_order_id)
88
+ if res.status_code == 200:
89
+ print('cancel order res:', res.json())
90
+
91
+ res = trade_client.order_v2.get_order_open(account_id=account_id)
92
+ if res.status_code == 200:
93
+ print("order_open_res=" + json.dumps(res.json(), indent=4))
94
+
95
+ res = trade_client.order_v2.get_order_history(account_id)
96
+ if res.status_code == 200:
97
+ print('get order history res:', res.json())
98
+
99
+ res = trade_client.order_v2.get_order_detail(account_id, client_order_id)
100
+ if res.status_code == 200:
101
+ print('get order detail res:', res.json())
102
+
103
+
104
+
105
+ # Combo Order
106
+ master_client_order_id = uuid.uuid4().hex
107
+ stop_profit_client_order_id = uuid.uuid4().hex
108
+ stop_loss_client_order_id = uuid.uuid4().hex
109
+ print('master_client_order_id:', master_client_order_id)
110
+ print('stop_profit_client_order_id:', stop_profit_client_order_id)
111
+ print('stop_loss_client_order_id:', stop_loss_client_order_id)
112
+ new_combo_orders = [
113
+ {
114
+ "client_order_id": master_client_order_id,
115
+ "combo_type": "MASTER",
116
+ "symbol": "F",
117
+ "instrument_type": "EQUITY",
118
+ "market": "US",
119
+ "order_type": "LIMIT",
120
+ "quantity": "1",
121
+ "support_trading_session": "N",
122
+ "limit_price": "10.5",
123
+ "side": "BUY",
124
+ "entrust_type": "QTY",
125
+ "time_in_force": "DAY"
126
+ },
127
+ {
128
+ "client_order_id": stop_profit_client_order_id,
129
+ "combo_type": "STOP_PROFIT",
130
+ "symbol": "F",
131
+ "instrument_type": "EQUITY",
132
+ "market": "US",
133
+ "order_type": "LIMIT",
134
+ "quantity": "1",
135
+ "support_trading_session": "N",
136
+ "limit_price": "11.5",
137
+ "side": "SELL",
138
+ "entrust_type": "QTY",
139
+ "time_in_force": "DAY"
140
+ },
141
+ {
142
+ "client_order_id": stop_loss_client_order_id,
143
+ "combo_type": "STOP_LOSS",
144
+ "symbol": "F",
145
+ "instrument_type": "EQUITY",
146
+ "market": "US",
147
+ "order_type": "STOP_LOSS",
148
+ "quantity": "1",
149
+ "support_trading_session": "N",
150
+ "stop_price": "10",
151
+ "side": "SELL",
152
+ "entrust_type": "QTY",
153
+ "time_in_force": "DAY"
154
+ }
155
+ ]
156
+
157
+ res = trade_client.order_v2.preview_order(account_id, new_combo_orders)
158
+ if res.status_code == 200:
159
+ print('preview combo order res:', res.json())
160
+
161
+ res = trade_client.order_v2.place_order(account_id, new_combo_orders)
162
+ if res.status_code == 200:
163
+ print('place combo order res:', res.json())
164
+ sleep(3)
165
+
166
+ modify_combo_orders = [
167
+ {
168
+ "client_order_id": master_client_order_id,
169
+ "quantity": "2"
170
+ },
171
+ {
172
+ "client_order_id": stop_profit_client_order_id,
173
+ "quantity": "2"
174
+ },
175
+ {
176
+ "client_order_id": stop_loss_client_order_id,
177
+ "quantity": "2"
178
+ }
179
+ ]
180
+ res = trade_client.order_v2.replace_order(account_id, modify_combo_orders)
181
+ if res.status_code == 200:
182
+ print('replace combo order res:', res.json())
183
+ sleep(3)
184
+
185
+ res = trade_client.order_v2.cancel_order(account_id, master_client_order_id)
186
+ if res.status_code == 200:
187
+ print('cancel master order res:', res.json())
188
+
189
+ res = trade_client.order_v2.get_order_history(account_id)
190
+ if res.status_code == 200:
191
+ print('get order history res:', res.json())
192
+
193
+ res = trade_client.order_v2.get_order_open(account_id=account_id)
194
+ if res.status_code == 200:
195
+ print("order_open_res=" + json.dumps(res.json(), indent=4))
196
+
197
+ res = trade_client.order_v2.get_order_detail(account_id, master_client_order_id)
198
+ if res.status_code == 200:
199
+ print('get master order detail res:', res.json())
200
+
201
+
202
+ # Options
203
+ # For option order inquiries, please use the V2 query interface: api.order_v2.get_order_detail(account_id, client_order_id).
204
+ client_order_id = uuid.uuid4().hex
205
+ option_new_orders = [
206
+ {
207
+ "client_order_id": client_order_id,
208
+ "combo_type": "NORMAL",
209
+ "order_type": "LIMIT",
210
+ "quantity": "1",
211
+ "limit_price": "21.25",
212
+ "option_strategy": "SINGLE",
213
+ "side": "BUY",
214
+ "time_in_force": "GTC",
215
+ "entrust_type": "QTY",
216
+ "legs": [
217
+ {
218
+ "side": "BUY",
219
+ "quantity": "1",
220
+ "symbol": "TSLA",
221
+ "strike_price": "400",
222
+ "option_expire_date": "2025-12-26",
223
+ "instrument_type": "OPTION",
224
+ "option_type": "CALL",
225
+ "market": "US"
226
+ }
227
+ ]
228
+ }
229
+ ]
230
+
231
+ # preview
232
+ res = trade_client.order_v2.preview_option(account_id, option_new_orders)
233
+ if res.status_code == 200:
234
+ print("preview option res:" + json.dumps(res.json(), indent=4))
235
+
236
+ # place
237
+ res = trade_client.order_v2.place_option(account_id, option_new_orders)
238
+ if res.status_code == 200:
239
+ print("place option res:" + json.dumps(res.json(), indent=4))
240
+ sleep(3)
241
+
242
+ # replace for Webull HK
243
+ # option_modify_orders = [
244
+ # {
245
+ # "client_order_id": client_order_id,
246
+ # "quantity": "2",
247
+ # "limit_price": "11.3"
248
+ # }
249
+ # ]
250
+ # res = trade_client.order_v2.replace_option(account_id, option_modify_orders)
251
+ # if res.status_code == 200:
252
+ # print("replace option res:" + json.dumps(res.json(), indent=4))
253
+ # sleep(5)
254
+
255
+ # replace for Webull US
256
+ res = trade_client.order_v2.get_order_detail(account_id, client_order_id)
257
+ if res.status_code == 200:
258
+ print('get option order detail res:', res.json())
259
+ data = res.json() or {}
260
+ leg_id = (
261
+ data.get("orders", [{}])[0]
262
+ .get("legs", [{}])[0]
263
+ .get("id")
264
+ )
265
+ print('get option order detail id :', leg_id)
266
+
267
+ # If it is a multi-leg option, you need to manually match it to the corresponding sub-leg orderId.
268
+ if leg_id:
269
+ option_modify_orders = [
270
+ {
271
+ "client_order_id": client_order_id,
272
+ "quantity": "2",
273
+ "limit_price": "21.3",
274
+ "legs": [
275
+ {
276
+ "id": leg_id,
277
+ "quantity": "2"
278
+ }
279
+ ]
280
+ }
281
+ ]
282
+ res = trade_client.order_v2.replace_option(account_id, option_modify_orders)
283
+ if res.status_code == 200:
284
+ print("replace option res:" + json.dumps(res.json(), indent=4))
285
+ sleep(3)
286
+
287
+ # cancel
288
+ res = trade_client.order_v2.cancel_option(account_id, client_order_id)
289
+ if res.status_code == 200:
290
+ print("cancel option res:" + json.dumps(res.json(), indent=4))
291
+
292
+ res = trade_client.order_v2.get_order_history(account_id)
293
+ if res.status_code == 200:
294
+ print('get order history res:', res.json())
295
+
296
+ res = trade_client.order_v2.get_order_open(account_id=account_id)
297
+ if res.status_code == 200:
298
+ print("order_open_res=" + json.dumps(res.json(), indent=4))
299
+
300
+ res = trade_client.order_v2.get_order_detail(account_id, client_order_id)
301
+ if res.status_code == 200:
302
+ print('get option order detail res:', res.json())
@@ -12,36 +12,38 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import unittest
15
+ import logging
16
16
 
17
- from webull.trade.trade_events_client import TradeEventsClient
18
17
  from webull.trade.events.types import ORDER_STATUS_CHANGED, EVENT_TYPE_ORDER
18
+ from webull.trade.trade_events_client import TradeEventsClient
19
19
 
20
20
  your_app_key = "<your_app_key>"
21
21
  your_app_secret = "<your_app_secret>"
22
22
  account_id = "<your_account_id>"
23
- region_id = "hk"
23
+ region_id = "<region_id>"
24
24
 
25
25
  optional_api_endpoint = "<event_api_endpoint>"
26
26
 
27
27
 
28
+ def _on_log(level, log_content):
29
+ print(logging.getLevelName(level), log_content)
30
+
31
+ def my_on_events_message(event_type, subscribe_type, payload, raw_message):
32
+ if EVENT_TYPE_ORDER == event_type and ORDER_STATUS_CHANGED == subscribe_type:
33
+ print('----request_id:%s----' % payload['request_id'])
34
+ print(payload)
35
+
28
36
  if __name__ == '__main__':
37
+
29
38
  # Create EventsClient instance
30
39
  trade_events_client = TradeEventsClient(your_app_key, your_app_secret, region_id)
31
- trade_events_client.enable_logger()
32
40
  # For non production environment, you need to set the domain name of the subscription service through eventsclient. For example, the domain name of the UAT environment is set here
33
41
  # trade_events_client = TradeEventsClient(your_app_key, your_app_secret, region_id, host=optional_api_endpoint)
42
+ trade_events_client.on_log = _on_log
34
43
 
35
44
  # Set the callback function when the event data is received.
36
45
  # The data of order status change is printed here
37
46
 
38
- def my_on_events_message(event_type, subscribe_type, payload, raw_message):
39
- if EVENT_TYPE_ORDER == event_type and ORDER_STATUS_CHANGED == subscribe_type:
40
- print('----request_id:%s----' % payload['request_id'])
41
- print(payload['account_id'])
42
- print(payload['client_order_id'])
43
- print(payload['order_status'])
44
-
45
47
  trade_events_client.on_events_message = my_on_events_message
46
48
  # Set the account ID to be subscribed and initiate the subscription. This method is synchronous
47
49
  trade_events_client.do_subscribe([account_id])
@@ -0,0 +1 @@
1
+ __version__ = "1.0.4"
@@ -1,4 +1,4 @@
1
- __version__ = "1.0.2"
1
+ __version__ = "1.0.4"
2
2
 
3
3
  import logging
4
4
 
@@ -35,6 +35,9 @@
35
35
 
36
36
  import logging
37
37
 
38
+ from webull.core import compat
39
+ from webull.core.exception.exceptions import ClientException
40
+ from webull.core.http.initializer.config.config_operation import ConfigOperation
38
41
  from webull.core.http.initializer.token.token_manager import TokenManager
39
42
 
40
43
  logger = logging.getLogger(__name__)
@@ -51,29 +54,62 @@ class ClientInitializer:
51
54
  @staticmethod
52
55
  def init_token(api_client):
53
56
  """Initialize token"""
54
- if not ClientInitializer.check_region_token_enable(api_client):
55
- return
57
+ disable_config_region_ids = ["hk"]
58
+ if api_client.get_region_id() in disable_config_region_ids:
59
+ if not ClientInitializer._check_region_token_enable(api_client):
60
+ return
61
+ else:
62
+ if not ClientInitializer._check_token_enable(api_client):
63
+ return
56
64
 
57
65
  token_manager = TokenManager()
58
66
  token_manager.init_token(api_client)
59
67
 
60
68
  @staticmethod
61
- def check_region_token_enable(api_client):
69
+ def _check_region_token_enable(api_client):
62
70
  """
63
71
  Check whether token checking is enabled in the specified region
64
72
  """
65
73
  if api_client is None:
66
- logger.warning("check_region_token_enable api_client is null, return False")
74
+ logger.warning("_check_region_token_enable api_client is null, return False")
67
75
  return False
68
76
 
69
77
  if not api_client.get_region_id():
70
- logger.warning("check_region_token_enable region_id is null, return False")
78
+ logger.warning("_check_region_token_enable region_id is null, return False")
71
79
  return False
72
80
 
73
81
  enable_region_ids = ["hk"]
74
82
  result = api_client.get_region_id() in enable_region_ids
75
83
  logger.info(
76
- "check_region_token_enable result is %s, enable regionIds is %s. current regionsId is %s",
77
- result, enable_region_ids, api_client.get_region_id()
84
+ "_check_region_token_enable result is %s, enable regionIds is %s.",
85
+ result, enable_region_ids
78
86
  )
87
+ return result
88
+
89
+ @staticmethod
90
+ def _check_token_enable(api_client):
91
+ """
92
+ Check whether token checking is enabled
93
+ """
94
+ if api_client is None:
95
+ logger.warning("_check_token_enable api_client is null, return False")
96
+ return False
97
+
98
+ config_operation = ConfigOperation(api_client)
99
+ response = config_operation.get_config()
100
+
101
+ if response.status_code != 200:
102
+ msg = "_check_token_enable get_token_config returned non-200 response, raising exception. status_code:%s" % response.status_code
103
+ logger.error(compat.ensure_string(msg))
104
+ raise ClientException("ERROR_CHECK_TOKEN_ENABLE", msg)
105
+
106
+ token_config = response.json()
107
+ if not token_config:
108
+ msg = "_check_token_enable get_token_config result is empty."
109
+ logger.error(msg)
110
+ raise ClientException("ERROR_CHECK_TOKEN_ENABLE", msg)
111
+
112
+ result = token_config.get("token_check_enabled", False)
113
+ logger.info("_check_token_enable result is %s",result)
114
+
79
115
  return result
@@ -0,0 +1,41 @@
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
+ # Licensed to the Apache Software Foundation (ASF) under one
16
+ # or more contributor license agreements. See the NOTICE file
17
+ # distributed with this work for additional information
18
+ # regarding copyright ownership. The ASF licenses this file
19
+ # to you under the Apache License, Version 2.0 (the
20
+ # "License"); you may not use this file except in compliance
21
+ # with the License. You may obtain a copy of the License at
22
+ #
23
+ # http://www.apache.org/licenses/LICENSE-2.0
24
+ #
25
+ #
26
+ #
27
+ # Unless required by applicable law or agreed to in writing,
28
+ # software distributed under the License is distributed on an
29
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
30
+ # KIND, either express or implied. See the License for the
31
+ # specific language governing permissions and limitations
32
+ # under the License.
33
+
34
+ # coding=utf-8
35
+
36
+ from webull.core.request import ApiRequest
37
+
38
+
39
+ class GetConfigRequest(ApiRequest):
40
+ def __init__(self):
41
+ super().__init__("/openapi/config", version='v2', method="GET", query_params={})
@@ -0,0 +1,49 @@
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
+ # Licensed to the Apache Software Foundation (ASF) under one
16
+ # or more contributor license agreements. See the NOTICE file
17
+ # distributed with this work for additional information
18
+ # regarding copyright ownership. The ASF licenses this file
19
+ # to you under the Apache License, Version 2.0 (the
20
+ # "License"); you may not use this file except in compliance
21
+ # with the License. You may obtain a copy of the License at
22
+ #
23
+ # http://www.apache.org/licenses/LICENSE-2.0
24
+ #
25
+ #
26
+ #
27
+ # Unless required by applicable law or agreed to in writing,
28
+ # software distributed under the License is distributed on an
29
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
30
+ # KIND, either express or implied. See the License for the
31
+ # specific language governing permissions and limitations
32
+ # under the License.
33
+
34
+ # coding=utf-8
35
+
36
+ from webull.core.http.initializer.config.bean.query_config_request import GetConfigRequest
37
+
38
+
39
+ class ConfigOperation:
40
+ def __init__(self, api_client):
41
+ self.client = api_client
42
+
43
+ def get_config(self):
44
+ """
45
+ Get Config
46
+ """
47
+ get_config_request = GetConfigRequest()
48
+ response = self.client.get_response(get_config_request)
49
+ return response
@@ -38,7 +38,7 @@ from webull.core.request import ApiRequest
38
38
 
39
39
  class CheckTokenRequest(ApiRequest):
40
40
  def __init__(self):
41
- super().__init__("/auth/token/check", version='v2', method="POST", body_params={})
41
+ super().__init__("/openapi/auth/token/check", version='v2', method="POST", body_params={})
42
42
 
43
43
  def set_token(self, token):
44
44
  self.add_body_params("token", token)
@@ -38,7 +38,7 @@ from webull.core.request import ApiRequest
38
38
 
39
39
  class CreateTokenRequest(ApiRequest):
40
40
  def __init__(self):
41
- super().__init__("/auth/token/create", version='v2', method="POST", body_params={})
41
+ super().__init__("/openapi/auth/token/create", version='v2', method="POST", body_params={})
42
42
 
43
43
  def set_token(self, token):
44
44
  if token:
@@ -38,7 +38,7 @@ from webull.core.request import ApiRequest
38
38
 
39
39
  class RefreshTokenRequest(ApiRequest):
40
40
  def __init__(self):
41
- super().__init__("/auth/token/refresh", version='v2', method="POST", body_params={})
41
+ super().__init__("/openapi/auth/token/refresh", version='v2', method="POST", body_params={})
42
42
 
43
43
  def set_token(self, token):
44
44
  self.add_body_params("token", token)
@@ -33,8 +33,6 @@
33
33
 
34
34
  # coding=utf-8
35
35
 
36
- import logging
37
-
38
36
  from webull.core.http.initializer.token.bean.check_token_request import CheckTokenRequest
39
37
  from webull.core.http.initializer.token.bean.create_token_request import CreateTokenRequest
40
38
  from webull.core.http.initializer.token.bean.refresh_token_request import RefreshTokenRequest
@@ -0,0 +1,3 @@
1
+ # coding=utf-8
2
+
3
+ __version__ = '1.0.4'
@@ -11,6 +11,9 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
15
+ # coding=utf-8
16
+
14
17
  import logging
15
18
  import sys
16
19
 
@@ -17,7 +17,7 @@ from webull.core.request import ApiRequest
17
17
 
18
18
  class BatchHistoricalBarsRequest(ApiRequest):
19
19
  def __init__(self):
20
- ApiRequest.__init__(self, "/market-data/batch-bars", version='v2', method="POST", body_params={})
20
+ ApiRequest.__init__(self, "/openapi/market-data/stock/batch-bars", version='v2', method="POST", body_params={})
21
21
 
22
22
  def set_symbols(self, symbol):
23
23
  self.add_body_params("symbols", symbol)
@@ -17,7 +17,7 @@ from webull.core.request import ApiRequest
17
17
 
18
18
  class GetHistoricalBarsRequest(ApiRequest):
19
19
  def __init__(self):
20
- ApiRequest.__init__(self, "/market-data/bars", version='v2', method="GET", query_params={})
20
+ ApiRequest.__init__(self, "/openapi/market-data/stock/bars", version='v2', method="GET", query_params={})
21
21
 
22
22
  def set_symbol(self, symbol):
23
23
  self.add_query_param("symbol", symbol)
@@ -18,7 +18,7 @@ from webull.core.request import ApiRequest
18
18
 
19
19
  class GetInstrumentsRequest(ApiRequest):
20
20
  def __init__(self):
21
- ApiRequest.__init__(self, "/instrument/list", version='v2', method="GET", query_params={})
21
+ ApiRequest.__init__(self, "/openapi/instrument/stock/list", version='v2', method="GET", query_params={})
22
22
 
23
23
  def set_symbols(self, symbols):
24
24
  if isinstance(symbols, str):
@@ -18,7 +18,7 @@ from webull.core.request import ApiRequest
18
18
 
19
19
  class GetQuotesRequest(ApiRequest):
20
20
  def __init__(self):
21
- ApiRequest.__init__(self, "/market-data/quotes", version='v2', method="GET", query_params={})
21
+ ApiRequest.__init__(self, "/openapi/market-data/stock/quotes", version='v2', method="GET", query_params={})
22
22
 
23
23
  def set_symbol(self, symbol):
24
24
  self.add_query_param("symbol", symbol)
@@ -18,7 +18,7 @@ from webull.core.request import ApiRequest
18
18
 
19
19
  class GetSnapshotRequest(ApiRequest):
20
20
  def __init__(self):
21
- ApiRequest.__init__(self, "/market-data/snapshot", version='v2', method="GET", query_params={})
21
+ ApiRequest.__init__(self, "/openapi/market-data/stock/snapshot", version='v2', method="GET", query_params={})
22
22
 
23
23
  def set_symbols(self, symbols):
24
24
  if isinstance(symbols, str):
@@ -18,7 +18,7 @@ from webull.core.request import ApiRequest
18
18
 
19
19
  class GetTickRequest(ApiRequest):
20
20
  def __init__(self):
21
- ApiRequest.__init__(self, "/market-data/tick", version='v2', method="GET", query_params={})
21
+ ApiRequest.__init__(self, "/openapi/market-data/stock/tick", version='v2', method="GET", query_params={})
22
22
 
23
23
  def set_symbol(self, symbol):
24
24
  self.add_query_param("symbol", symbol)
@@ -0,0 +1,2 @@
1
+ __version__ = "1.0.4"
2
+