webull-openapi-python-sdk 3.0.1__tar.gz → 3.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.
Files changed (352) hide show
  1. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/PKG-INFO +1 -1
  2. webull_openapi_python_sdk-3.0.3/samples/__init__.py +1 -0
  3. webull_openapi_python_sdk-3.0.3/samples/data/community.py +62 -0
  4. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/trade/trade_client_v3.py +38 -0
  5. webull_openapi_python_sdk-3.0.3/webull/__init__.py +1 -0
  6. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/__init__.py +1 -1
  7. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/utils/validation.py +8 -1
  8. webull_openapi_python_sdk-3.0.3/webull/data/__init__.py +3 -0
  9. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/data_client.py +2 -0
  10. webull_openapi_python_sdk-3.0.3/webull/data/quotes/community.py +105 -0
  11. webull_openapi_python_sdk-3.0.3/webull/data/request/create_comment_request.py +33 -0
  12. webull_openapi_python_sdk-3.0.3/webull/data/request/create_post_request.py +39 -0
  13. webull_openapi_python_sdk-3.0.3/webull/data/request/get_post_request.py +29 -0
  14. webull_openapi_python_sdk-3.0.3/webull/data/request/list_hot_stocks_request.py +25 -0
  15. webull_openapi_python_sdk-3.0.3/webull/data/request/list_my_posts_request.py +30 -0
  16. webull_openapi_python_sdk-3.0.3/webull/data/request/list_posts_by_symbol_request.py +43 -0
  17. webull_openapi_python_sdk-3.0.3/webull/trade/__init__.py +1 -0
  18. webull_openapi_python_sdk-3.0.3/webull/trade/common/transfer_activities_param.py +44 -0
  19. webull_openapi_python_sdk-3.0.3/webull/trade/request/v3/get_transfer_activities_detail_request.py +28 -0
  20. webull_openapi_python_sdk-3.0.3/webull/trade/request/v3/get_transfer_activities_request.py +55 -0
  21. webull_openapi_python_sdk-3.0.3/webull/trade/trade/activity.py +155 -0
  22. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull_openapi_python_sdk.egg-info/PKG-INFO +1 -1
  23. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull_openapi_python_sdk.egg-info/SOURCES.txt +11 -0
  24. webull_openapi_python_sdk-3.0.1/samples/__init__.py +0 -1
  25. webull_openapi_python_sdk-3.0.1/webull/__init__.py +0 -1
  26. webull_openapi_python_sdk-3.0.1/webull/data/__init__.py +0 -3
  27. webull_openapi_python_sdk-3.0.1/webull/trade/__init__.py +0 -1
  28. webull_openapi_python_sdk-3.0.1/webull/trade/trade/activity.py +0 -82
  29. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/ChangeLog.txt +0 -0
  30. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/LICENSE +0 -0
  31. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/MANIFEST.in +0 -0
  32. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/NOTICE +0 -0
  33. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/README.rst +0 -0
  34. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/account/__init__.py +0 -0
  35. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/account/account_client.py +0 -0
  36. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/assets/__init__.py +0 -0
  37. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/assets/assets_client.py +0 -0
  38. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/data/__init__.py +0 -0
  39. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/data/data_client.py +0 -0
  40. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/data/data_client_event.py +0 -0
  41. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/data/data_streaming_client.py +0 -0
  42. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/data/data_streaming_client_async.py +0 -0
  43. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/data/data_streaming_client_event.py +0 -0
  44. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/order/__init__.py +0 -0
  45. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/order/order_option_client.py +0 -0
  46. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/order/order_stock_client.py +0 -0
  47. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/screener/__init__.py +0 -0
  48. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/screener/screener_client.py +0 -0
  49. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/trade/__init__.py +0 -0
  50. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/trade/trade_client.py +0 -0
  51. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/trade/trade_client_v2.py +0 -0
  52. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/trade/trade_client_v3_event.py +0 -0
  53. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/trade/trade_event_client.py +0 -0
  54. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/watchlist/__init__.py +0 -0
  55. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/samples/watchlist/watchlist_client.py +0 -0
  56. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/setup.cfg +0 -0
  57. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/setup.py +0 -0
  58. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/__init__.py +0 -0
  59. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/algorithm/__init__.py +0 -0
  60. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/algorithm/sha_hmac1.py +0 -0
  61. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/algorithm/sha_hmac256.py +0 -0
  62. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/algorithm/sha_hmac256_new.py +0 -0
  63. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/composer/__init__.py +0 -0
  64. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/composer/default_signature_composer.py +0 -0
  65. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/credentials.py +0 -0
  66. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/signers/__init__.py +0 -0
  67. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/signers/app_key_signer.py +0 -0
  68. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/signers/signer.py +0 -0
  69. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/auth/signers/signer_factory.py +0 -0
  70. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/cache/__init__.py +0 -0
  71. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/client.py +0 -0
  72. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/common/__init__.py +0 -0
  73. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/common/api_type.py +0 -0
  74. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/common/easy_enum.py +0 -0
  75. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/common/region.py +0 -0
  76. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/compat.py +0 -0
  77. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/context/__init__.py +0 -0
  78. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/context/request_context_holder.py +0 -0
  79. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/data/endpoints.json +0 -0
  80. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/data/retry_config.json +0 -0
  81. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/endpoint/__init__.py +0 -0
  82. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/endpoint/chained_endpoint_resolver.py +0 -0
  83. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/endpoint/default_endpoint_resolver.py +0 -0
  84. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/endpoint/local_config_regional_endpoint_resolver.py +0 -0
  85. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/endpoint/resolver_endpoint_request.py +0 -0
  86. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/endpoint/user_customized_endpoint_resolver.py +0 -0
  87. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/exception/__init__.py +0 -0
  88. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/exception/error_code.py +0 -0
  89. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/exception/error_msg.py +0 -0
  90. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/exception/exceptions.py +0 -0
  91. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/headers.py +0 -0
  92. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/__init__.py +0 -0
  93. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/__init__.py +0 -0
  94. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/client_initializer.py +0 -0
  95. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/config/__init__.py +0 -0
  96. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/config/bean/__init__.py +0 -0
  97. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/config/bean/query_config_request.py +0 -0
  98. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/config/config_operation.py +0 -0
  99. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/__init__.py +0 -0
  100. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/bean/__init__.py +0 -0
  101. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/bean/access_token.py +0 -0
  102. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/bean/check_token_request.py +0 -0
  103. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/bean/create_token_request.py +0 -0
  104. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/bean/refresh_token_request.py +0 -0
  105. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/token_manager.py +0 -0
  106. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/token_operation.py +0 -0
  107. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/initializer/token/token_storage.py +0 -0
  108. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/method_type.py +0 -0
  109. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/protocol_type.py +0 -0
  110. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/request.py +0 -0
  111. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/http/response.py +0 -0
  112. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/request.py +0 -0
  113. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/retry/__init__.py +0 -0
  114. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/retry/backoff_strategy.py +0 -0
  115. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/retry/retry_condition.py +0 -0
  116. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/retry/retry_policy.py +0 -0
  117. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/retry/retry_policy_context.py +0 -0
  118. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/utils/__init__.py +0 -0
  119. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/utils/common.py +0 -0
  120. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/utils/data.py +0 -0
  121. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/core/utils/desensitize.py +0 -0
  122. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/__init__.py +0 -0
  123. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/category.py +0 -0
  124. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/connect_ack.py +0 -0
  125. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/contract_type.py +0 -0
  126. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/direction.py +0 -0
  127. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/exchange_code.py +0 -0
  128. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/exercise_style.py +0 -0
  129. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/expiration_cycle.py +0 -0
  130. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/instrument_status.py +0 -0
  131. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/option_type.py +0 -0
  132. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/subscribe_type.py +0 -0
  133. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/common/timespan.py +0 -0
  134. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/data_streaming_client.py +0 -0
  135. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/internal/__init__.py +0 -0
  136. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/internal/default_retry_policy.py +0 -0
  137. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/internal/exceptions.py +0 -0
  138. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/internal/quotes_client.py +0 -0
  139. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/internal/quotes_decoder.py +0 -0
  140. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/internal/quotes_payload_decoder.py +0 -0
  141. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/internal/quotes_topic.py +0 -0
  142. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/__init__.py +0 -0
  143. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/crypto_market_data.py +0 -0
  144. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/event_market_data.py +0 -0
  145. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/fundamentals.py +0 -0
  146. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/futures_market_data.py +0 -0
  147. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/instrument.py +0 -0
  148. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/market_data.py +0 -0
  149. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/market_streaming_data.py +0 -0
  150. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/option_market_data.py +0 -0
  151. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/screener.py +0 -0
  152. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/__init__.py +0 -0
  153. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/ask_bid_result.py +0 -0
  154. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/basic_result.py +0 -0
  155. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/broker_result.py +0 -0
  156. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/event_depth_decoder.py +0 -0
  157. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/event_depth_result.py +0 -0
  158. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/event_snapshot_decoder.py +0 -0
  159. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/event_snapshot_result.py +0 -0
  160. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/event_tick_decoder.py +0 -0
  161. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/event_tick_result.py +0 -0
  162. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/message_pb2.py +0 -0
  163. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/notice_decoder.py +0 -0
  164. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/order_result.py +0 -0
  165. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/payload_type.py +0 -0
  166. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/quote_decoder.py +0 -0
  167. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/quote_result.py +0 -0
  168. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/snapshot_decoder.py +0 -0
  169. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/snapshot_result.py +0 -0
  170. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/tick_decoder.py +0 -0
  171. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/subscribe/tick_result.py +0 -0
  172. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/quotes/watchlist.py +0 -0
  173. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/__init__.py +0 -0
  174. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_analyst_rating_request.py +0 -0
  175. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_analyst_target_price_request.py +0 -0
  176. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_batch_historical_bars_request.py +0 -0
  177. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_capital_flow_request.py +0 -0
  178. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_company_profile_request.py +0 -0
  179. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_corp_action_request.py +0 -0
  180. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_crypto_historical_bars_request.py +0 -0
  181. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_crypto_instruments_request.py +0 -0
  182. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_crypto_instruments_request_v2.py +0 -0
  183. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_crypto_snapshot_request.py +0 -0
  184. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_dividend_calendar_request.py +0 -0
  185. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_earnings_calendar_request.py +0 -0
  186. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_eod_bars_request.py +0 -0
  187. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_bars_request.py +0 -0
  188. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_depth_request.py +0 -0
  189. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_events_request.py +0 -0
  190. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_instrument_request.py +0 -0
  191. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_instrument_request_v2.py +0 -0
  192. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_series_categories.py +0 -0
  193. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_series_request.py +0 -0
  194. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_series_request_v2.py +0 -0
  195. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_snapshot_request.py +0 -0
  196. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_event_tick_request.py +0 -0
  197. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_financials_alert_request.py +0 -0
  198. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_financials_balance_sheet_request.py +0 -0
  199. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_financials_cashflow_request.py +0 -0
  200. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_financials_income_request.py +0 -0
  201. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_financials_indicators_request.py +0 -0
  202. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_footprint_request.py +0 -0
  203. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_forecast_eps_request.py +0 -0
  204. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_allocation_request.py +0 -0
  205. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_brief_request.py +0 -0
  206. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_dividends_request.py +0 -0
  207. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_dividends_request_v2.py +0 -0
  208. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_files_request.py +0 -0
  209. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_holdings_request.py +0 -0
  210. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_net_value_request.py +0 -0
  211. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_performance_request.py +0 -0
  212. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_rating_request.py +0 -0
  213. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_fund_splits_request.py +0 -0
  214. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_depth_request.py +0 -0
  215. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_footprint_request.py +0 -0
  216. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_historical_bars_request.py +0 -0
  217. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_instruments_by_code_request.py +0 -0
  218. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_instruments_request.py +0 -0
  219. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_product_class.py +0 -0
  220. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_products_request.py +0 -0
  221. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_snapshot_request.py +0 -0
  222. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_futures_tick_request.py +0 -0
  223. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_historical_bars_request.py +0 -0
  224. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_industry_comparison_request.py +0 -0
  225. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_instruments_request.py +0 -0
  226. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_instruments_request_v2.py +0 -0
  227. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_noii_bars_request.py +0 -0
  228. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_noii_snapshot_request.py +0 -0
  229. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_option_bars_request.py +0 -0
  230. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_option_contracts_request.py +0 -0
  231. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_option_contracts_request_v2.py +0 -0
  232. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_option_snapshot_request.py +0 -0
  233. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_option_tick_request.py +0 -0
  234. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_quotes_request.py +0 -0
  235. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_sec_filings_request.py +0 -0
  236. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_snapshot_request.py +0 -0
  237. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/get_tick_request.py +0 -0
  238. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/__init__.py +0 -0
  239. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_52whl_request.py +0 -0
  240. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_52whl_request_v2.py +0 -0
  241. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_gainers_losers_request.py +0 -0
  242. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_gainers_losers_request_v2.py +0 -0
  243. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_high_dividend_request.py +0 -0
  244. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_high_dividend_request_v2.py +0 -0
  245. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_market_sectors_detail_request.py +0 -0
  246. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_market_sectors_detail_request_v2.py +0 -0
  247. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_market_sectors_request.py +0 -0
  248. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_market_sectors_request_v2.py +0 -0
  249. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_most_active_request.py +0 -0
  250. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/screener/get_most_active_request_v2.py +0 -0
  251. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/subscribe_request.py +0 -0
  252. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/unsubscribe_request.py +0 -0
  253. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/__init__.py +0 -0
  254. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/add_watchlist_instruments_request.py +0 -0
  255. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/create_watchlist_request.py +0 -0
  256. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/delete_watchlist_request.py +0 -0
  257. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/get_watchlist_instruments_request.py +0 -0
  258. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/get_watchlist_request.py +0 -0
  259. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/remove_watchlist_instruments_request.py +0 -0
  260. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/update_watchlist_instruments_request.py +0 -0
  261. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/data/request/watchlist/update_watchlist_request.py +0 -0
  262. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/__init__.py +0 -0
  263. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/account_type.py +0 -0
  264. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/category.py +0 -0
  265. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/combo_ticker_type.py +0 -0
  266. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/combo_type.py +0 -0
  267. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/currency.py +0 -0
  268. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/forbid_reason.py +0 -0
  269. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/instrument_type.py +0 -0
  270. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/markets.py +0 -0
  271. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/order_entrust_type.py +0 -0
  272. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/order_side.py +0 -0
  273. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/order_status.py +0 -0
  274. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/order_tif.py +0 -0
  275. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/order_type.py +0 -0
  276. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/position_intent.py +0 -0
  277. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/trade_policy.py +0 -0
  278. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/trading_date_type.py +0 -0
  279. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/common/trailing_type.py +0 -0
  280. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/events/__init__.py +0 -0
  281. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/events/default_retry_policy.py +0 -0
  282. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/events/events_pb2.py +0 -0
  283. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/events/events_pb2_grpc.py +0 -0
  284. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/events/signature_composer.py +0 -0
  285. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/events/types.py +0 -0
  286. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/__init__.py +0 -0
  287. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/cancel_order_request.py +0 -0
  288. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_account_balance_request.py +0 -0
  289. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_account_positions_request.py +0 -0
  290. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_account_profile_request.py +0 -0
  291. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_activities_request.py +0 -0
  292. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_activities_request_v2.py +0 -0
  293. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_app_subscriptions.py +0 -0
  294. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_open_orders_request.py +0 -0
  295. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_order_detail_request.py +0 -0
  296. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_today_orders_request.py +0 -0
  297. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_trade_calendar_request.py +0 -0
  298. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_trade_instrument_detail_request.py +0 -0
  299. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_trade_security_detail_request.py +0 -0
  300. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/get_tradeable_instruments_request.py +0 -0
  301. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/palce_order_request.py +0 -0
  302. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/place_order_request.py +0 -0
  303. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/place_order_request_v2.py +0 -0
  304. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/replace_order_request.py +0 -0
  305. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/replace_order_request_v2.py +0 -0
  306. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/__init__.py +0 -0
  307. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/cancel_option_request.py +0 -0
  308. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/cancel_order_request.py +0 -0
  309. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_account_balance_request.py +0 -0
  310. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_account_list.py +0 -0
  311. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_account_list_request.py +0 -0
  312. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_account_position_details_request.py +0 -0
  313. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_account_position_details_request_v2.py +0 -0
  314. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_account_positions_request.py +0 -0
  315. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_order_detail_request.py +0 -0
  316. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_order_executions_request.py +0 -0
  317. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_order_executions_request_v2.py +0 -0
  318. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_order_history_request.py +0 -0
  319. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/get_order_open_request.py +0 -0
  320. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/palce_order_request.py +0 -0
  321. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/place_option_request.py +0 -0
  322. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/place_order_request.py +0 -0
  323. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/preview_option_request.py +0 -0
  324. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/preview_order_request.py +0 -0
  325. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/replace_option_request.py +0 -0
  326. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v2/replace_order_request.py +0 -0
  327. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/__init__.py +0 -0
  328. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/batch_place_order_request.py +0 -0
  329. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/cancel_order_request.py +0 -0
  330. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/get_order_detail_request.py +0 -0
  331. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/get_order_history_request.py +0 -0
  332. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/get_order_history_request_v2.py +0 -0
  333. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/get_order_open_request.py +0 -0
  334. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/get_order_open_request_v2.py +0 -0
  335. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/place_order_request.py +0 -0
  336. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/preview_order_request.py +0 -0
  337. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/request/v3/replace_order_request.py +0 -0
  338. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/__init__.py +0 -0
  339. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/account_info.py +0 -0
  340. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/order_operation.py +0 -0
  341. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/trade_calendar.py +0 -0
  342. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/trade_instrument.py +0 -0
  343. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/v2/__init__.py +0 -0
  344. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/v2/account_info_v2.py +0 -0
  345. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/v2/order_operation_v2.py +0 -0
  346. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/v3/__init__.py +0 -0
  347. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade/v3/order_operation_v3.py +0 -0
  348. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade_client.py +0 -0
  349. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull/trade/trade_events_client.py +0 -0
  350. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull_openapi_python_sdk.egg-info/dependency_links.txt +0 -0
  351. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/webull_openapi_python_sdk.egg-info/requires.txt +0 -0
  352. {webull_openapi_python_sdk-3.0.1 → webull_openapi_python_sdk-3.0.3}/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: 3.0.1
3
+ Version: 3.0.3
4
4
  Summary: Webull Python SDK.
5
5
  Home-page:
6
6
  Author: Webull
@@ -0,0 +1 @@
1
+ __version__ = '3.0.3'
@@ -0,0 +1,62 @@
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.client import ApiClient
18
+ from webull.data.common.category import Category
19
+ from webull.data.data_client import DataClient
20
+
21
+ optional_api_endpoint = "<api_endpoint>"
22
+ your_app_key = "<your_app_key>"
23
+ your_app_secret = "<your_app_secret>"
24
+ region_id = "<region_id>"
25
+
26
+ api_client = ApiClient(your_app_key, your_app_secret, region_id)
27
+ api_client.add_endpoint(region_id, optional_api_endpoint)
28
+
29
+
30
+ if __name__ == '__main__':
31
+ data_client = DataClient(api_client)
32
+
33
+ response = data_client.community.create_post(
34
+ "Hello, this is a test post from OpenAPI!",
35
+ symbol="NVDA",
36
+ category=Category.US_STOCK.name,
37
+ )
38
+ if response.status_code == 200:
39
+ print('create_post:', response.json())
40
+
41
+ response = data_client.community.create_comment(
42
+ "995005758239301632",
43
+ "Hello, this is a test comment from OpenAPI!",
44
+ )
45
+ if response.status_code == 200:
46
+ print('create_comment:', response.json())
47
+
48
+ response = data_client.community.list_hot_stocks()
49
+ if response.status_code == 200:
50
+ print('list_hot_stocks:', response.json())
51
+
52
+ response = data_client.community.list_posts_by_symbol("NVDA", Category.US_STOCK.name)
53
+ if response.status_code == 200:
54
+ print('list_posts_by_symbol:', response.json())
55
+
56
+ response = data_client.community.get_post("995005758239301632")
57
+ if response.status_code == 200:
58
+ print('get_post:', response.json())
59
+
60
+ response = data_client.community.list_my_posts()
61
+ if response.status_code == 200:
62
+ print('list_my_posts:', response.json())
@@ -18,6 +18,7 @@ from time import sleep
18
18
 
19
19
  from webull.core.client import ApiClient
20
20
  from webull.trade.trade_client import TradeClient
21
+ from webull.trade.common.transfer_activities_param import TransferActivitiesParam
21
22
 
22
23
  optional_api_endpoint = "<api_endpoint>"
23
24
  your_app_key = "<your_app_key>"
@@ -888,3 +889,40 @@ if __name__ == '__main__':
888
889
  res = trade_client.order_v3.get_order_detail(account_id, trailing_stop_loss_limit_client_order_id)
889
890
  if res.status_code == 200:
890
891
  print('get trailing stop loss limit order detail res:', res.json())
892
+
893
+ # ============================================================
894
+ # Position Transfers Example (US only)
895
+ # ============================================================
896
+
897
+ # First page: pass no pagination_key and no filters.
898
+ res = trade_client.activity.list_transfers_activities(TransferActivitiesParam(account_id))
899
+ if res.status_code == 200:
900
+ print('list transfers activities res:', res.json())
901
+
902
+ # Iterate all pages using the returned pagination_key until it is absent.
903
+ pagination_key = (res.json() or {}).get('pagination_key') if res.status_code == 200 else None
904
+ while pagination_key:
905
+ res = trade_client.activity.list_transfers_activities(
906
+ TransferActivitiesParam(account_id, pagination_key=pagination_key))
907
+ if res.status_code != 200:
908
+ break
909
+ print('list transfers activities next page res:', res.json())
910
+ pagination_key = (res.json() or {}).get('pagination_key')
911
+
912
+ # Filtered query: ACATS/crypto incoming transfers, FULL type, within a time range.
913
+ res = trade_client.activity.list_transfers_activities(
914
+ TransferActivitiesParam(
915
+ account_id,
916
+ transfer_method="ACATS,CRYPTO_TRANSFER",
917
+ direction="INCOMING",
918
+ status="PENDING,COMPLETED",
919
+ acats_transfer_types="FULL",
920
+ start_time="2026-08-01T00:00:00Z",
921
+ end_time="2026-08-31T23:59:59Z"))
922
+ if res.status_code == 200:
923
+ print('list transfers activities filtered res:', res.json())
924
+
925
+ # Get a single transfer record by account_id and transfer_id.
926
+ res = trade_client.activity.get_transfer_activity_detail(account_id, transfer_id="<your_transfer_id>")
927
+ if res.status_code == 200:
928
+ print('get transfer activity res:', res.json())
@@ -0,0 +1 @@
1
+ __version__ = '3.0.3'
@@ -1,4 +1,4 @@
1
- __version__ = '3.0.1'
1
+ __version__ = '3.0.3'
2
2
 
3
3
  import logging
4
4
 
@@ -46,4 +46,11 @@ def assert_integer_positive(integer, name):
46
46
  if isinstance(integer, int) and integer > 0:
47
47
  return
48
48
  raise ClientException(error_code.SDK_INVALID_PARAMETER,
49
- "{0} should be a positive integer.".format(name))
49
+ "{0} should be a positive integer.".format(name))
50
+
51
+
52
+ def assert_string_not_empty(value, name):
53
+ if isinstance(value, str) and value.strip():
54
+ return
55
+ raise ClientException(error_code.SDK_INVALID_PARAMETER,
56
+ "{0} should not be empty.".format(name))
@@ -0,0 +1,3 @@
1
+ # coding=utf-8
2
+
3
+ __version__ = '3.0.3'
@@ -27,6 +27,7 @@ from webull.data.quotes.option_market_data import OptionMarketData
27
27
  from webull.data.quotes.fundamentals import Fundamentals
28
28
  from webull.data.quotes.screener import Screener
29
29
  from webull.data.quotes.watchlist import Watchlist
30
+ from webull.data.quotes.community import Community
30
31
 
31
32
 
32
33
  class DataClient:
@@ -42,6 +43,7 @@ class DataClient:
42
43
  self.fundamentals = Fundamentals(api_client)
43
44
  self.screener = Screener(api_client)
44
45
  self.watchlist = Watchlist(api_client)
46
+ self.community = Community(api_client)
45
47
 
46
48
  def _init_logger(self, api_client):
47
49
  # No logger configured, using default console and local file logging.
@@ -0,0 +1,105 @@
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.data.request.create_comment_request import CreateCommentRequest
18
+ from webull.data.request.create_post_request import CreatePostRequest
19
+ from webull.data.request.get_post_request import GetPostRequest
20
+ from webull.data.request.list_hot_stocks_request import ListHotStocksRequest
21
+ from webull.data.request.list_my_posts_request import ListMyPostsRequest
22
+ from webull.data.request.list_posts_by_symbol_request import ListPostsBySymbolRequest
23
+
24
+
25
+ class Community:
26
+ """Community API operations."""
27
+
28
+ def __init__(self, api_client):
29
+ self.client = api_client
30
+
31
+ def create_post(self, text, symbol=None, category=None):
32
+ """
33
+ Create a plain-text community post.
34
+
35
+ :param text: Post content.
36
+ :param symbol: Optional ticker symbol. Provide it with category.
37
+ :param category: Optional ticker market category. Provide it with symbol.
38
+ :return: Response containing the created post identifier.
39
+ """
40
+ request = CreatePostRequest()
41
+ request.set_text(text)
42
+ request.set_symbol(symbol)
43
+ request.set_category(category)
44
+ return self.client.get_response(request)
45
+
46
+ def create_comment(self, post_id, text):
47
+ """
48
+ Create a plain-text comment on an existing community post.
49
+
50
+ :param post_id: Parent post identifier.
51
+ :param text: Comment content.
52
+ :return: Response containing the created comment identifier.
53
+ """
54
+ request = CreateCommentRequest()
55
+ request.set_post_id(post_id)
56
+ request.set_text(text)
57
+ return self.client.get_response(request)
58
+
59
+ def list_hot_stocks(self):
60
+ """
61
+ List stocks ranked by community activity.
62
+
63
+ :return: Response containing hot stock ranking entries.
64
+ """
65
+ request = ListHotStocksRequest()
66
+ return self.client.get_response(request)
67
+
68
+ def list_posts_by_symbol(self, symbol, category, keyword=None, pagination_key=None):
69
+ """
70
+ List community posts associated with a symbol.
71
+
72
+ :param symbol: Stock symbol.
73
+ :param category: Market category.
74
+ :param keyword: Optional search keyword.
75
+ :param pagination_key: Optional key from the previous response.
76
+ :return: Paginated post list response.
77
+ """
78
+ request = ListPostsBySymbolRequest()
79
+ request.set_symbol(symbol)
80
+ request.set_category(category)
81
+ request.set_keyword(keyword)
82
+ request.set_pagination_key(pagination_key)
83
+ return self.client.get_response(request)
84
+
85
+ def get_post(self, post_id):
86
+ """
87
+ Get detailed information for a community post.
88
+
89
+ :param post_id: Post identifier.
90
+ :return: Post detail response.
91
+ """
92
+ request = GetPostRequest()
93
+ request.set_post_id(post_id)
94
+ return self.client.get_response(request)
95
+
96
+ def list_my_posts(self, pagination_key=None):
97
+ """
98
+ List posts created by the current user.
99
+
100
+ :param pagination_key: Optional key from the previous response.
101
+ :return: Paginated post list response.
102
+ """
103
+ request = ListMyPostsRequest()
104
+ request.set_pagination_key(pagination_key)
105
+ return self.client.get_response(request)
@@ -0,0 +1,33 @@
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.request import ApiRequest
18
+
19
+
20
+ class CreateCommentRequest(ApiRequest):
21
+ """Request for creating a plain-text comment on a community post."""
22
+
23
+ def __init__(self):
24
+ ApiRequest.__init__(self, "/market-data/communities/comments/create", version="v3", method="POST",
25
+ body_params={})
26
+
27
+ def set_post_id(self, post_id):
28
+ """Set the parent post identifier."""
29
+ self.add_body_params("post_id", post_id)
30
+
31
+ def set_text(self, text):
32
+ """Set the comment text."""
33
+ self.add_body_params("text", text)
@@ -0,0 +1,39 @@
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.request import ApiRequest
18
+
19
+
20
+ class CreatePostRequest(ApiRequest):
21
+ """Request for creating a plain-text community post."""
22
+
23
+ def __init__(self):
24
+ ApiRequest.__init__(self, "/market-data/communities/posts/create", version="v3", method="POST",
25
+ body_params={})
26
+
27
+ def set_text(self, text):
28
+ """Set the post text."""
29
+ self.add_body_params("text", text)
30
+
31
+ def set_symbol(self, symbol):
32
+ """Set the optional ticker symbol."""
33
+ if symbol is not None:
34
+ self.add_body_params("symbol", symbol)
35
+
36
+ def set_category(self, category):
37
+ """Set the optional ticker market category."""
38
+ if category is not None:
39
+ self.add_body_params("category", category)
@@ -0,0 +1,29 @@
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.request import ApiRequest
18
+
19
+
20
+ class GetPostRequest(ApiRequest):
21
+ """Request for retrieving a community post by identifier."""
22
+
23
+ def __init__(self):
24
+ ApiRequest.__init__(self, "/market-data/communities/posts/get", version="v3", method="GET",
25
+ query_params={})
26
+
27
+ def set_post_id(self, post_id):
28
+ """Set the post identifier."""
29
+ self.add_query_param("post_id", post_id)
@@ -0,0 +1,25 @@
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.request import ApiRequest
18
+
19
+
20
+ class ListHotStocksRequest(ApiRequest):
21
+ """Request for listing stocks ranked by community activity."""
22
+
23
+ def __init__(self):
24
+ ApiRequest.__init__(self, "/market-data/communities/stock-rankings/list", version="v3", method="GET",
25
+ query_params={})
@@ -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
+
15
+ # coding=utf-8
16
+
17
+ from webull.core.request import ApiRequest
18
+
19
+
20
+ class ListMyPostsRequest(ApiRequest):
21
+ """Request for listing posts created by the current user."""
22
+
23
+ def __init__(self):
24
+ ApiRequest.__init__(self, "/market-data/communities/my-posts/list", version="v3", method="GET",
25
+ query_params={})
26
+
27
+ def set_pagination_key(self, pagination_key):
28
+ """Set the optional pagination key from the previous response."""
29
+ if pagination_key is not None:
30
+ self.add_query_param("pagination_key", pagination_key)
@@ -0,0 +1,43 @@
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.request import ApiRequest
18
+
19
+
20
+ class ListPostsBySymbolRequest(ApiRequest):
21
+ """Request for listing community posts associated with a symbol."""
22
+
23
+ def __init__(self):
24
+ ApiRequest.__init__(self, "/market-data/communities/posts/symbols/list", version="v3", method="GET",
25
+ query_params={})
26
+
27
+ def set_symbol(self, symbol):
28
+ """Set the stock symbol."""
29
+ self.add_query_param("symbol", symbol)
30
+
31
+ def set_category(self, category):
32
+ """Set the market category."""
33
+ self.add_query_param("category", category)
34
+
35
+ def set_keyword(self, keyword):
36
+ """Set the optional search keyword."""
37
+ if keyword is not None:
38
+ self.add_query_param("keyword", keyword)
39
+
40
+ def set_pagination_key(self, pagination_key):
41
+ """Set the optional pagination key from the previous response."""
42
+ if pagination_key is not None:
43
+ self.add_query_param("pagination_key", pagination_key)
@@ -0,0 +1 @@
1
+ __version__ = '3.0.3'
@@ -0,0 +1,44 @@
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.utils import validation
18
+
19
+
20
+ class TransferActivitiesParam:
21
+ """
22
+ Parameter object for :meth:`Activity.list_transfers_activities`.
23
+
24
+ :param account_id: Account ID (required).
25
+ :param transfer_method: Transfer method filter, comma-separated (e.g. ACATS,CRYPTO_TRANSFER) (optional).
26
+ :param direction: Direction filter: INCOMING or OUTGOING (optional).
27
+ :param status: Status filter, comma-separated: PENDING, COMPLETED, REJECTED, FAILED, CANCELLED (optional).
28
+ :param acats_transfer_types: ACATS transfer types filter, comma-separated: FULL, PARTIAL, RESIDUAL, RECLAIM, OTHER (optional).
29
+ :param start_time: ISO8601 UTC start time of transfer create time (optional).
30
+ :param end_time: ISO8601 UTC end time of transfer create time (optional).
31
+ :param pagination_key: Pagination key from the previous page response; not returned on the last page (optional).
32
+ """
33
+
34
+ def __init__(self, account_id, transfer_method=None, direction=None, status=None,
35
+ acats_transfer_types=None, start_time=None, end_time=None, pagination_key=None):
36
+ validation.assert_string_not_empty(account_id, "account_id")
37
+ self.account_id = account_id
38
+ self.transfer_method = transfer_method
39
+ self.direction = direction
40
+ self.status = status
41
+ self.acats_transfer_types = acats_transfer_types
42
+ self.start_time = start_time
43
+ self.end_time = end_time
44
+ self.pagination_key = pagination_key
@@ -0,0 +1,28 @@
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
+ from webull.core.request import ApiRequest
17
+
18
+
19
+ class TransferActivitiesDetailRequest(ApiRequest):
20
+ def __init__(self):
21
+ ApiRequest.__init__(self, "/trading/activities/transfer-activities/get", version='v3', method="GET",
22
+ query_params={})
23
+
24
+ def set_account_id(self, account_id):
25
+ self.add_query_param("account_id", account_id)
26
+
27
+ def set_transfer_id(self, transfer_id):
28
+ self.add_query_param("transfer_id", transfer_id)
@@ -0,0 +1,55 @@
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
+ from webull.core.request import ApiRequest
17
+ from webull.core.utils import validation
18
+
19
+
20
+ class TransferActivitiesRequest(ApiRequest):
21
+ def __init__(self):
22
+ ApiRequest.__init__(self, "/trading/activities/transfer-activities/list", version='v3', method="GET",
23
+ query_params={})
24
+
25
+ def set_account_id(self, account_id):
26
+ validation.assert_string_not_empty(account_id, "account_id")
27
+ self.add_query_param("account_id", account_id)
28
+
29
+ def set_transfer_method(self, transfer_method):
30
+ if transfer_method is not None:
31
+ self.add_query_param("transfer_method", transfer_method)
32
+
33
+ def set_direction(self, direction):
34
+ if direction is not None:
35
+ self.add_query_param("direction", direction)
36
+
37
+ def set_status(self, status):
38
+ if status is not None:
39
+ self.add_query_param("status", status)
40
+
41
+ def set_acats_transfer_types(self, acats_transfer_types):
42
+ if acats_transfer_types is not None:
43
+ self.add_query_param("acats_transfer_types", acats_transfer_types)
44
+
45
+ def set_start_time(self, start_time):
46
+ if start_time is not None:
47
+ self.add_query_param("start_time", start_time)
48
+
49
+ def set_end_time(self, end_time):
50
+ if end_time is not None:
51
+ self.add_query_param("end_time", end_time)
52
+
53
+ def set_pagination_key(self, pagination_key):
54
+ if pagination_key:
55
+ self.add_query_param("pagination_key", pagination_key)