webull-openapi-python-sdk 1.0.1__py3-none-any.whl → 1.0.3__py3-none-any.whl

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 (51) hide show
  1. samples/__init__.py +1 -1
  2. samples/trade/trade_client_v2.py +223 -102
  3. samples/trade/trade_event_client.py +13 -11
  4. webull/__init__.py +1 -1
  5. webull/core/__init__.py +1 -1
  6. webull/core/data/endpoints.json +1 -1
  7. webull/core/http/initializer/client_initializer.py +43 -7
  8. webull/core/http/initializer/config/__init__.py +0 -0
  9. webull/core/http/initializer/config/bean/__init__.py +0 -0
  10. webull/core/http/initializer/config/bean/query_config_request.py +41 -0
  11. webull/core/http/initializer/config/config_operation.py +49 -0
  12. webull/core/http/initializer/token/bean/check_token_request.py +1 -1
  13. webull/core/http/initializer/token/bean/create_token_request.py +1 -1
  14. webull/core/http/initializer/token/bean/refresh_token_request.py +1 -1
  15. webull/core/http/initializer/token/token_operation.py +0 -2
  16. webull/data/__init__.py +1 -1
  17. webull/data/data_client.py +3 -0
  18. webull/data/request/get_batch_historical_bars_request.py +1 -1
  19. webull/data/request/get_historical_bars_request.py +1 -1
  20. webull/data/request/get_instruments_request.py +1 -1
  21. webull/data/request/get_quotes_request.py +1 -1
  22. webull/data/request/get_snapshot_request.py +1 -1
  23. webull/data/request/get_tick_request.py +1 -1
  24. webull/trade/__init__.py +1 -1
  25. webull/trade/request/palce_order_request.py +3 -2
  26. webull/trade/request/place_order_request.py +92 -0
  27. webull/trade/request/v2/cancel_option_request.py +2 -2
  28. webull/trade/request/v2/cancel_order_request.py +2 -2
  29. webull/trade/request/v2/get_account_balance_request.py +1 -1
  30. webull/trade/request/v2/get_account_list.py +3 -0
  31. webull/trade/request/v2/get_account_list_request.py +23 -0
  32. webull/trade/request/v2/get_account_positions_request.py +1 -1
  33. webull/trade/request/v2/get_order_detail_request.py +1 -1
  34. webull/trade/request/v2/get_order_history_request.py +5 -2
  35. webull/trade/request/v2/get_order_open_request.py +32 -0
  36. webull/trade/request/v2/palce_order_request.py +11 -54
  37. webull/trade/request/v2/place_option_request.py +7 -22
  38. webull/trade/request/v2/place_order_request.py +44 -0
  39. webull/trade/request/v2/preview_option_request.py +6 -2
  40. webull/trade/request/v2/preview_order_request.py +7 -37
  41. webull/trade/request/v2/replace_option_request.py +6 -2
  42. webull/trade/request/v2/replace_order_request.py +7 -35
  43. webull/trade/trade/order_operation.py +5 -2
  44. webull/trade/trade/v2/account_info_v2.py +8 -11
  45. webull/trade/trade/v2/order_operation_v2.py +114 -67
  46. {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/METADATA +1 -1
  47. {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/RECORD +51 -43
  48. {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/WHEEL +0 -0
  49. {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/licenses/LICENSE +0 -0
  50. {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/licenses/NOTICE +0 -0
  51. {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/top_level.txt +0 -0
@@ -12,46 +12,18 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # coding=utf-8
15
- from typing import List
16
15
  from webull.core.request import ApiRequest
17
16
 
18
- class CloseContract:
19
- def __init__(self, contract_id: str, quantity: str):
20
- self.contract_id = contract_id
21
- self.quantity = quantity
22
-
23
- def to_dict(self):
24
- return {
25
- "contract_id": self.contract_id,
26
- "quantity": self.quantity
27
- }
28
-
29
17
  class ReplaceOrderRequest(ApiRequest):
30
18
  def __init__(self):
31
- ApiRequest.__init__(self, "/openapi/account/orders/replace", version='v2', method="POST", body_params={})
32
- self._modify_orders = []
33
- self._current_order = {}
34
- self.add_body_params("modify_orders", self._modify_orders)
19
+ ApiRequest.__init__(self, "/openapi/trade/stock/order/replace", version='v2', method="POST", body_params={})
35
20
 
36
- def add_order_param(self, key, value):
37
- self._current_order[key] = value
21
+ def set_modify_orders(self, modify_orders):
22
+ self.add_body_params("modify_orders", modify_orders)
38
23
 
39
24
  def set_account_id(self, account_id):
40
- self.add_query_param("account_id", account_id)
41
-
42
- def set_close_contracts(self, close_contracts: List[CloseContract]):
43
- if not isinstance(close_contracts, list):
44
- raise TypeError("close_contracts must be a list of CloseContract objects.")
45
- self.add_order_param("close_contracts", [contract.to_dict() for contract in close_contracts])
46
-
47
- def set_modify_orders(self, current_order):
48
- self._current_order.update({k: v for k, v in current_order.items() if v is not None and k != 'self'})
49
- if 'close_contracts' in current_order and current_order['close_contracts'] is not None:
50
- self.set_close_contracts(current_order['close_contracts'])
25
+ self.add_body_params("account_id", account_id)
51
26
 
52
- def finalize_order(self):
53
- if self._current_order:
54
- self._modify_orders.append(self._current_order)
55
- self._current_order = {}
56
- else:
57
- raise ValueError("No order fields have been set.")
27
+ def set_client_combo_order_id(self, client_combo_order_id):
28
+ if client_combo_order_id:
29
+ self.add_body_params("client_combo_order_id", client_combo_order_id)
@@ -11,13 +11,16 @@
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
- from webull.core.context.request_context_holder import RequestContextHolder
14
+
15
15
  # coding=utf-8
16
+
17
+ from webull.core.context.request_context_holder import RequestContextHolder
18
+
16
19
  from webull.trade.request.cancel_order_request import CancelOrderRequest
17
20
  from webull.trade.request.get_open_orders_request import OpenOrdersListRequest
18
21
  from webull.trade.request.get_order_detail_request import OrderDetailRequest
19
22
  from webull.trade.request.get_today_orders_request import TodayOrdersListRequest
20
- from webull.trade.request.palce_order_request import PlaceOrderRequest
23
+ from webull.trade.request.place_order_request import PlaceOrderRequest
21
24
  from webull.trade.request.place_order_request_v2 import PlaceOrderRequestV2
22
25
  from webull.trade.request.replace_order_request import ReplaceOrderRequest
23
26
  from webull.trade.request.replace_order_request_v2 import ReplaceOrderRequestV2
@@ -14,7 +14,7 @@
14
14
  # coding=utf-8
15
15
 
16
16
  from webull.trade.request.v2.get_account_balance_request import AccountBalanceRequest
17
- from webull.trade.request.v2.get_account_list import GetAccountList
17
+ from webull.trade.request.v2.get_account_list_request import GetAccountListRequest
18
18
  from webull.trade.request.v2.get_account_positions_request import AccountPositionsRequest
19
19
 
20
20
 
@@ -24,19 +24,17 @@ class AccountV2:
24
24
 
25
25
  def get_account_list(self):
26
26
  """
27
- This interface is currently available only to individual brokerage customers in Webull Japan
28
- and institutional brokerage clients in Webull Hong Kong. It is not yet available to
29
- Webull US brokerage customers, but support will be introduced progressively in the future.
27
+ This interface is currently supported only for Webull HK and Webull US.
28
+ Support for other regions will be available in future updates.
30
29
  """
31
- account_list = GetAccountList()
30
+ account_list = GetAccountListRequest()
32
31
  response = self.client.get_response(account_list)
33
32
  return response
34
33
 
35
34
  def get_account_balance(self, account_id):
36
35
  """
37
- This interface is currently available only to individual brokerage customers in Webull Japan
38
- and institutional brokerage clients in Webull Hong Kong. It is not yet available to
39
- Webull US brokerage customers, but support will be introduced progressively in the future.
36
+ This interface is currently supported only for Webull HK and Webull US.
37
+ Support for other regions will be available in future updates.
40
38
  """
41
39
  account_balance_request = AccountBalanceRequest()
42
40
  account_balance_request.set_account_id(account_id)
@@ -45,9 +43,8 @@ class AccountV2:
45
43
 
46
44
  def get_account_position(self, account_id):
47
45
  """
48
- This interface is currently available only to individual brokerage customers in Webull Japan
49
- and institutional brokerage clients in Webull Hong Kong. It is not yet available to
50
- Webull US brokerage customers, but support will be introduced progressively in the future.
46
+ This interface is currently supported only for Webull HK and Webull US.
47
+ Support for other regions will be available in future updates.
51
48
  """
52
49
  account_positions_request = AccountPositionsRequest()
53
50
  account_positions_request.set_account_id(account_id)
@@ -12,13 +12,13 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # coding=utf-8
15
- from webull.core.context.request_context_holder import RequestContextHolder
16
15
  from webull.trade.request.v2.cancel_option_request import CancelOptionRequest
17
16
  from webull.trade.request.v2.cancel_order_request import CancelOrderRequest
18
17
  from webull.trade.request.v2.get_order_detail_request import OrderDetailRequest
19
18
  from webull.trade.request.v2.get_order_history_request import OrderHistoryRequest
20
- from webull.trade.request.v2.palce_order_request import PlaceOrderRequest
19
+ from webull.trade.request.v2.get_order_open_request import OrderOpenRequest
21
20
  from webull.trade.request.v2.place_option_request import PlaceOptionRequest
21
+ from webull.trade.request.v2.place_order_request import PlaceOrderRequest
22
22
  from webull.trade.request.v2.preview_option_request import PreviewOptionRequest
23
23
  from webull.trade.request.v2.preview_order_request import PreviewOrderRequest
24
24
  from webull.trade.request.v2.replace_option_request import ReplaceOptionRequest
@@ -29,52 +29,57 @@ class OrderOperationV2:
29
29
  def __init__(self, api_client):
30
30
  self.client = api_client
31
31
 
32
- def preview_order(self, account_id, preview_orders):
32
+ def preview_order(self, account_id, preview_orders, client_combo_order_id=None):
33
33
  """
34
- This interface is currently available only to individual brokerage customers in Webull Japan
35
- and institutional brokerage clients in Webull Hong Kong. It is not yet available to
36
- Webull US brokerage customers, but support will be introduced progressively in the future.
34
+ This interface is currently supported only for Webull HK and Webull US.
35
+ Support for other regions will be available in future updates.
37
36
  """
38
37
  preview_order_request = PreviewOrderRequest()
39
38
  preview_order_request.set_account_id(account_id)
40
39
  preview_order_request.set_new_orders(preview_orders)
41
- preview_order_request.finalize_order()
40
+ preview_order_request.set_client_combo_order_id(client_combo_order_id)
42
41
  response = self.client.get_response(preview_order_request)
43
42
  return response
44
43
 
45
- def place_order(self, account_id, new_orders):
44
+ def place_order(self, account_id, new_orders, client_combo_order_id=None):
46
45
  """
47
- This interface is currently available only to individual brokerage customers in Webull Japan
48
- and institutional brokerage clients in Webull Hong Kong. It is not yet available to
49
- Webull US brokerage customers, but support will be introduced progressively in the future.
46
+ This interface is currently supported only for Webull HK and Webull US.
47
+ Support for other regions will be available in future updates.
50
48
  """
51
49
  place_order_req = PlaceOrderRequest()
52
50
  place_order_req.set_account_id(account_id)
53
51
  place_order_req.set_new_orders(new_orders)
54
- place_order_req.finalize_order()
52
+ place_order_req.set_client_combo_order_id(client_combo_order_id)
55
53
  place_order_req.add_custom_headers_from_order(new_orders)
56
- place_order_req.add_custom_headers_from_context()
57
54
  response = self.client.get_response(place_order_req)
58
55
  return response
59
56
 
60
- def replace_order(self, account_id, modify_orders):
57
+ def replace_order(self, account_id, modify_orders, client_combo_order_id=None):
61
58
  """
62
- This interface is currently available only to individual brokerage customers in Webull Japan
63
- and institutional brokerage clients in Webull Hong Kong. It is not yet available to
64
- Webull US brokerage customers, but support will be introduced progressively in the future.
59
+ This interface is currently supported only for Webull HK and Webull US.
60
+ Support for other regions will be available in future updates.
65
61
  """
66
62
  replace_order_request = ReplaceOrderRequest()
67
63
  replace_order_request.set_account_id(account_id)
68
64
  replace_order_request.set_modify_orders(modify_orders)
69
- replace_order_request.finalize_order()
65
+ replace_order_request.set_client_combo_order_id(client_combo_order_id)
70
66
  response = self.client.get_response(replace_order_request)
71
67
  return response
72
68
 
73
69
  def cancel_order_v2(self, account_id, client_order_id):
74
70
  """
75
- This interface is currently available only to individual brokerage customers in Webull Japan
76
- and institutional brokerage clients in Webull Hong Kong. It is not yet available to
77
- Webull US brokerage customers, but support will be introduced progressively in the future.
71
+ Deprecated. Use :func:`cancel_order` instead.
72
+ """
73
+ cancel_order_request = CancelOrderRequest()
74
+ cancel_order_request.set_account_id(account_id)
75
+ cancel_order_request.set_client_order_id(client_order_id)
76
+ response = self.client.get_response(cancel_order_request)
77
+ return response
78
+
79
+ def cancel_order(self, account_id, client_order_id):
80
+ """
81
+ This interface is currently supported only for Webull HK and Webull US.
82
+ Support for other regions will be available in future updates.
78
83
  """
79
84
  cancel_order_request = CancelOrderRequest()
80
85
  cancel_order_request.set_account_id(account_id)
@@ -84,9 +89,8 @@ class OrderOperationV2:
84
89
 
85
90
  def get_order_detail(self, account_id, client_order_id):
86
91
  """
87
- This interface is exclusively available for Webull Hong Kong brokerage clients.
88
- Currently, it does not support Webull Japan or Webull U.S. clients,
89
- but support will be gradually introduced in the future.
92
+ This interface is currently supported only for Webull HK and Webull US.
93
+ Support for other regions will be available in future updates.
90
94
  """
91
95
  order_detail_request = OrderDetailRequest()
92
96
  order_detail_request.set_account_id(account_id)
@@ -94,8 +98,44 @@ class OrderOperationV2:
94
98
  response = self.client.get_response(order_detail_request)
95
99
  return response
96
100
 
97
- def get_order_history_request(self, account_id, page_size=None, start_date=None, end_date=None, last_client_order_id=None):
101
+ def get_order_history(self, account_id, page_size=None, start_date=None, end_date=None,
102
+ last_client_order_id=None, last_order_id=None):
103
+ """
104
+ This interface is currently supported only for Webull HK and Webull US.
105
+ Support for other regions will be available in future updates.
106
+
107
+ Historical orders. If they are group orders, will be returned together,
108
+ and the number of orders returned on one page may exceed the page_size.
109
+
110
+ :param account_id: Account ID
111
+ :param page_size: Limit the number of records per query to 10 by default.
112
+ :param start_date: Start date (if empty, the default is the last 7 days), in the format of yyyy-MM-dd.
113
+ :param end_date: End date (if empty, the default is the last 7 days), in the format of yyyy-MM-dd.
114
+ :param last_client_order_id: The last client order ID from the previous response. For the first page query,
115
+ this parameter is not required.
116
+ :param last_order_id: The last order ID from the previous response. For the first page query,
117
+ this parameter is not required.
98
118
  """
119
+ order_history_request = OrderHistoryRequest()
120
+ order_history_request.set_account_id(account_id=account_id)
121
+ if page_size:
122
+ order_history_request.set_page_size(page_size=page_size)
123
+ if start_date:
124
+ order_history_request.set_start_date(start_date=start_date)
125
+ if end_date:
126
+ order_history_request.set_end_date(end_date=end_date)
127
+ if last_client_order_id:
128
+ order_history_request.set_last_client_order_id(last_client_order_id=last_client_order_id)
129
+ if last_order_id:
130
+ order_history_request.set_last_order_id(last_order_id=last_order_id)
131
+ response = self.client.get_response(order_history_request)
132
+ return response
133
+
134
+ def get_order_history_request(self, account_id, page_size=None, start_date=None, end_date=None,
135
+ last_client_order_id=None, last_order_id=None):
136
+ """
137
+ Deprecated. Use :func:`get_order_history` instead.
138
+
99
139
  Historical orders, query the records of the past 7 days. If they are group orders, will be returned together,
100
140
  and the number of orders returned on one page may exceed the page_size.
101
141
 
@@ -103,7 +143,9 @@ class OrderOperationV2:
103
143
  :param page_size: Limit the number of records per query to 10 by default.
104
144
  :param start_date: Start date (if empty, the default is the last 7 days), in the format of yyyy-MM-dd.
105
145
  :param end_date: End date (if empty, the default is the last 7 days), in the format of yyyy-MM-dd.
106
- :param last_client_order_id: The last order ID from the previous response. For the first page query,
146
+ :param last_client_order_id: The last client order ID from the previous response. For the first page query,
147
+ this parameter is not required.
148
+ :param last_order_id: The last order ID from the previous response. For the first page query,
107
149
  this parameter is not required.
108
150
  """
109
151
  order_history_request = OrderHistoryRequest()
@@ -116,13 +158,41 @@ class OrderOperationV2:
116
158
  order_history_request.set_end_date(end_date=end_date)
117
159
  if last_client_order_id:
118
160
  order_history_request.set_last_client_order_id(last_client_order_id=last_client_order_id)
161
+ if last_order_id:
162
+ order_history_request.set_last_order_id(last_order_id=last_order_id)
119
163
  response = self.client.get_response(order_history_request)
120
164
  return response
165
+
166
+ def get_order_open(self, account_id, page_size=None, last_order_id=None, last_client_order_id=None):
167
+ """
168
+ This interface is currently supported only for Webull HK.
169
+ Support for other regions will be available in future updates.
170
+
171
+ Paging query pending orders.
172
+
173
+ :param account_id: Account ID
174
+ :param page_size: Limit the number of records per query to 10 by default.
175
+ :param start_date: Start date (if empty, the default is the last 7 days), in the format of yyyy-MM-dd.
176
+ :param last_order_id: The last order ID from the previous response. For the first page query,
177
+ this parameter is not required.
178
+ :param last_client_order_id: The last client order ID from the previous response. For the first page query,
179
+ this parameter is not required.
180
+ """
181
+ order_open_request = OrderOpenRequest()
182
+ order_open_request.set_account_id(account_id=account_id)
183
+ if page_size:
184
+ order_open_request.set_page_size(page_size=page_size)
185
+ if last_order_id:
186
+ order_open_request.set_last_order_id(last_order_id=last_order_id)
187
+ if last_client_order_id:
188
+ order_open_request.set_last_client_order_id(last_client_order_id=last_client_order_id)
189
+ response = self.client.get_response(order_open_request)
190
+ return response
191
+
121
192
  def query_order_detail(self, account_id, client_order_id):
122
193
  """
123
- This interface is currently available only to individual and institutional clients
124
- of Webull Hong Kong brokerages. It is not yet supported for clients of Webull US
125
- and Webull Japan brokerages, but support will be gradually introduced in the future.
194
+ Deprecated. Use :func:`get_order_detail` instead.
195
+
126
196
  Paging query pending orders.
127
197
 
128
198
  :param account_id: Account ID
@@ -134,73 +204,50 @@ class OrderOperationV2:
134
204
  response = self.client.get_response(order_detail_request)
135
205
  return response
136
206
 
137
- def preview_option(self, account_id, new_orders):
207
+ def preview_option(self, account_id, new_orders, client_combo_order_id=None):
138
208
  """
139
- This interface is currently available only to individual and institutional clients
140
- of Webull Hong Kong brokerages. It is not yet supported for clients of Webull US
141
- and Webull Japan brokerages, but support will be gradually introduced in the future.
209
+ This interface is currently supported only for Webull HK and Webull US.
210
+ Support for other regions will be available in future updates.
142
211
  """
143
212
  preview_option_request = PreviewOptionRequest()
144
213
  preview_option_request.set_new_orders(new_orders)
145
214
  preview_option_request.set_account_id(account_id)
215
+ preview_option_request.set_client_combo_order_id(client_combo_order_id)
146
216
  response = self.client.get_response(preview_option_request)
147
217
  return response
148
218
 
149
- def place_option(self, account_id, new_orders):
219
+ def place_option(self, account_id, new_orders, client_combo_order_id=None):
150
220
  """
151
- This interface is currently available only to individual and institutional clients
152
- of Webull Hong Kong brokerages. It is not yet supported for clients of Webull US
153
- and Webull Japan brokerages, but support will be gradually introduced in the future.
221
+ This interface is currently supported only for Webull HK and Webull US.
222
+ Support for other regions will be available in future updates.
154
223
  """
155
224
  place_option_request = PlaceOptionRequest()
156
225
  place_option_request.set_new_orders(new_orders)
157
226
  place_option_request.set_account_id(account_id)
227
+ place_option_request.set_client_combo_order_id(client_combo_order_id)
158
228
  place_option_request.add_custom_headers_from_order(new_orders)
159
- place_option_request.add_custom_headers_from_context()
160
229
  response = self.client.get_response(place_option_request)
161
230
  return response
162
231
 
163
- def replace_option(self, account_id, modify_orders):
232
+ def replace_option(self, account_id, modify_orders, client_combo_order_id=None):
164
233
  """
165
- This interface is currently available only to individual and institutional clients
166
- of Webull Hong Kong brokerages. It is not yet supported for clients of Webull US
167
- and Webull Japan brokerages, but support will be gradually introduced in the future.
234
+ This interface is currently supported only for Webull HK and Webull US.
235
+ Support for other regions will be available in future updates.
168
236
  """
169
237
  replace_option_request = ReplaceOptionRequest()
170
238
  replace_option_request.set_modify_orders(modify_orders)
171
239
  replace_option_request.set_account_id(account_id)
240
+ replace_option_request.set_client_combo_order_id(client_combo_order_id)
172
241
  response = self.client.get_response(replace_option_request)
173
242
  return response
174
243
 
175
244
  def cancel_option(self, account_id, client_order_id):
176
245
  """
177
- This interface is currently available only to individual and institutional clients
178
- of Webull Hong Kong brokerages. It is not yet supported for clients of Webull US
179
- and Webull Japan brokerages, but support will be gradually introduced in the future.
246
+ This interface is currently supported only for Webull HK and Webull US.
247
+ Support for other regions will be available in future updates.
180
248
  """
181
249
  cancel_option_request = CancelOptionRequest()
182
250
  cancel_option_request.set_client_order_id(client_order_id)
183
251
  cancel_option_request.set_account_id(account_id)
184
252
  response = self.client.get_response(cancel_option_request)
185
- return response
186
-
187
- def add_custom_headers(self, headers_map: dict):
188
- """
189
- This is an optional feature; you can still make a request without setting it.
190
- If set, you can specify certain headers to perform specific operations.
191
- Note: If you set a header, call remove_custom_headers to clean up the header after the request is completed.
192
-
193
- Currently supported header keys and functions:
194
- Key:category {See Also: category}
195
- Function: Frequency limit rules, please refer to the document for details. currently only supports Hong Kong
196
- """
197
- if not headers_map or len(headers_map) == 0:
198
- return
199
-
200
- RequestContextHolder.get().update(headers_map)
201
-
202
- def remove_custom_headers(self):
203
- """
204
- Clearing headers after the request is completed.
205
- """
206
- RequestContextHolder.clear()
253
+ return response
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webull-openapi-python-sdk
3
- Version: 1.0.1
3
+ Version: 1.0.3
4
4
  Summary: Webull Python SDK.
5
5
  Home-page:
6
6
  Author: Webull
@@ -1,14 +1,14 @@
1
- samples/__init__.py,sha256=Pru0BlFBASFCFo7McHdohtKkUtgMPDwbGfyUZlE2_Vw,21
1
+ samples/__init__.py,sha256=-PYTKPEkq2aGJHOdzkgu5oKZIPKSq6MCqGrFyy4QQXc,21
2
2
  samples/data/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
3
3
  samples/data/data_client.py,sha256=47fvKOxxN0K9kKi8Zlx_80AATn-Pofm-XU9xugCJtnw,2263
4
4
  samples/data/data_streaming_client.py,sha256=EILzTCTQ0WkPymdq7V3OW_-JQdfRSZ8aBBYkbpujwqg,3498
5
5
  samples/data/data_streaming_client_async.py,sha256=7KyODfZLBFLFRJcux6BtacS05cPKDn78G4lZa978Qgo,3853
6
6
  samples/trade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  samples/trade/trade_client.py,sha256=bXX3onGK6aRFpopeE3yDQAx4Xo9dDc-k9gGbwB9El0A,5678
8
- samples/trade/trade_client_v2.py,sha256=h_PZCTjdu9rHVUwnbp_mtVtuuDmwDaTTb0hS8WKNys8,6545
9
- samples/trade/trade_event_client.py,sha256=5OJR886d0pxJeYtfthYyFGgEy_CFk3jbjLrhPapqybc,2085
10
- webull/__init__.py,sha256=x7SWnx8ho-VaDHLtK75ItIuboJ9SpcR_vy2GvXNmU4A,21
11
- webull/core/__init__.py,sha256=GdisG6FgLbwBiaOzLM6QdKmaSwo_Ry3KKAw1uRPgFQ8,225
8
+ samples/trade/trade_client_v2.py,sha256=qKlAhalnB770PyVRvPxnLOTW7PvXXfr0WIoJphY4jG4,10192
9
+ samples/trade/trade_event_client.py,sha256=mkbqB3jLM6q4k7pJE-Bc1coUoKdDivTEK3R28rM3pIM,2062
10
+ webull/__init__.py,sha256=-PYTKPEkq2aGJHOdzkgu5oKZIPKSq6MCqGrFyy4QQXc,21
11
+ webull/core/__init__.py,sha256=rpcSfmmQB9ETgZzqLuy3XQyK1cM0zh-x7jE7srPxnwc,225
12
12
  webull/core/client.py,sha256=1xH9XS92AKdUiVUPJYtzeaIl88bwa_ChDALJAxrXWQ0,16229
13
13
  webull/core/compat.py,sha256=HDis0D271oQ6OCpA7ViX10NJdhfXdoBfzx6nuV3vrnI,3114
14
14
  webull/core/headers.py,sha256=7aMt3_YtaL9Yhqj2T1g7ESQgkI78SAXIk7hMX5U5FgE,2019
@@ -31,7 +31,7 @@ webull/core/common/easy_enum.py,sha256=3PorEZPQgBT7uFwtNplpwZ9oi76CCwgKIZ0jRiybZ
31
31
  webull/core/common/region.py,sha256=Dj-WN9oHLCsWP1E0bEY7j6Ru0U_CE44CjTWOib3HjrQ,86
32
32
  webull/core/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  webull/core/context/request_context_holder.py,sha256=41aSKMtOkS0yHVvMMmP2vjsMg3WHvDPe3_njT0hwi_4,1148
34
- webull/core/data/endpoints.json,sha256=qymDZFS7GqOIFQyBVmG8xJY_At0R6NjGgpchgyvE6c8,581
34
+ webull/core/data/endpoints.json,sha256=CW-FHJRnT_fSjjX_RrvIvs91wayJqq83QGMDYm-QXM0,579
35
35
  webull/core/data/retry_config.json,sha256=aRKrBfZyLrXt_58LCt7VvunQoxXS_qGon4JGGZnB644,304
36
36
  webull/core/endpoint/__init__.py,sha256=hC_6UsVc7NGxD21gMT4i42Crm2zN4K-IAU4zxkLysVo,153
37
37
  webull/core/endpoint/chained_endpoint_resolver.py,sha256=YQ-K7w9P3UolgiH0UdXiKsG4ALSManebWlZHeZjxSjY,2256
@@ -49,15 +49,19 @@ webull/core/http/protocol_type.py,sha256=DIPZ3i_r8nxaW5hVRVTyjwpKtWWTSHoGN_nA1SB
49
49
  webull/core/http/request.py,sha256=GUrxb5n2ozVtb45-yBXe9iT0E61guez_udluMKF1k1w,3769
50
50
  webull/core/http/response.py,sha256=Q4W2azXn9hqYuR1NVt8NlHmIaFAi0lmD3ejXRygk2KA,5868
51
51
  webull/core/http/initializer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- webull/core/http/initializer/client_initializer.py,sha256=5ywAPHN7JGQOspxBpEBQLxG_IkNxec6OIPS9ZQVodTk,2751
52
+ webull/core/http/initializer/client_initializer.py,sha256=olKBWcloSpGOSoMkHez0wQ9arwsqxGTQN5-YQAetcQk,4171
53
+ webull/core/http/initializer/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ webull/core/http/initializer/config/config_operation.py,sha256=_1MILnzVu61XSV74yLsEzqLAt4GQNiJ9QpLN3kws9Q0,1766
55
+ webull/core/http/initializer/config/bean/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ webull/core/http/initializer/config/bean/query_config_request.py,sha256=WOLYv06KD6l47LH0VKs7_Npm3AmyPKj3b6nY9OrA7n0,1569
53
57
  webull/core/http/initializer/token/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
58
  webull/core/http/initializer/token/token_manager.py,sha256=nc9F14uJ5iwqi2MK9R7QvhU9SqBIlWr8wr2jYrmtxRM,11197
55
- webull/core/http/initializer/token/token_operation.py,sha256=91WpdFvxYJFD92iKraKMsRlxAI6GhXW1x0lrqDXna7E,2593
59
+ webull/core/http/initializer/token/token_operation.py,sha256=iI2H1cKfAe3gpVptHCniZso77kuPnf3jyg5b4QYQD5E,2577
56
60
  webull/core/http/initializer/token/bean/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
61
  webull/core/http/initializer/token/bean/access_token.py,sha256=wK5UrTnAMacO_vkhym-BcmbJdkHJcYHIpFcXJrQp1r8,1529
58
- webull/core/http/initializer/token/bean/check_token_request.py,sha256=6cp0cnTO4NSm9U1NOAwGNmPJHYp2OhSjXp_Xp7XJ66g,1650
59
- webull/core/http/initializer/token/bean/create_token_request.py,sha256=2Mj4Sb8lI5VX6lhj0RwUro7_LxD56gw_FULZbBtdYw8,1674
60
- webull/core/http/initializer/token/bean/refresh_token_request.py,sha256=lrjb4cvcGVNsCpP8ZTJM_0RYybLuGXNk20-T8FPV2U4,1654
62
+ webull/core/http/initializer/token/bean/check_token_request.py,sha256=mYuwJPiwlnNGHxlgBMqkzGji9ZOOJ9c-o_hRwfFx0vA,1658
63
+ webull/core/http/initializer/token/bean/create_token_request.py,sha256=BkhC9KhrfbK9UgVqG04lZzhjvBUthZBrks4DuqxZszQ,1682
64
+ webull/core/http/initializer/token/bean/refresh_token_request.py,sha256=A8qPyLrEU5KuqsLuF2cDRol3XAGZnHsestLFX2XphyE,1662
61
65
  webull/core/retry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
66
  webull/core/retry/backoff_strategy.py,sha256=PMJe8Kwvf3-hV30_-zhcbJ3egBedgiMIQa861xR7koM,4177
63
67
  webull/core/retry/retry_condition.py,sha256=Hel380uhtcgmrK0NZiuY015vyBQWzM2dv4npjoMrv7A,8020
@@ -173,8 +177,8 @@ webull/core/vendored/requests/packages/urllib3/util/ssl_.py,sha256=aRUKc1WIyS-sU
173
177
  webull/core/vendored/requests/packages/urllib3/util/timeout.py,sha256=sAyiBBds7eOk1oM3ulvVMWZiqx1B743puHqK92XwBcY,10325
174
178
  webull/core/vendored/requests/packages/urllib3/util/url.py,sha256=_CgqbyNrQWubrv_y5aWhuutz3mnbj1cvTUe4VYbGYWA,7367
175
179
  webull/core/vendored/requests/packages/urllib3/util/wait.py,sha256=0FHS8R3OrMU-97XWt8AxuUStkSGXTct9CfOwY_fWn7U,5971
176
- webull/data/__init__.py,sha256=pj9y3BSdxnFgGSWYUQ8uiy9aj15LqGAL6YYIeK6MMJ4,37
177
- webull/data/data_client.py,sha256=MVVVUFp0m0O0olCiy1LBWDxCgtrxxsv9NBPvetwoOB0,1590
180
+ webull/data/__init__.py,sha256=dwlzrrY4HSGTYja6pzI_57b_yYxwUAY-8pEm3ba4zfU,37
181
+ webull/data/data_client.py,sha256=nQj3rYrTMqBNUKDGnyshoDTiTAZMBsEAtusr5JrN7sg,1607
178
182
  webull/data/data_streaming_client.py,sha256=hYqrdKTeIB3Xmp7LMjMwN1XE6Y7bKXX0y-lGX1ty6W4,3870
179
183
  webull/data/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
184
  webull/data/common/category.py,sha256=DV6L1DhtNq6q4jg_VvqsAYMm_RXM6KolPpJMXCJCXck,867
@@ -212,17 +216,17 @@ webull/data/quotes/subscribe/snapshot_result.py,sha256=T46uw-hxmWDCJdhXfFsdSn3Ut
212
216
  webull/data/quotes/subscribe/tick_decoder.py,sha256=Qb__nJth2vsDMk2bWfNxY-mUGTUPzSZPO-ukHVxq80g,1008
213
217
  webull/data/quotes/subscribe/tick_result.py,sha256=i2-4ZD1GK5EI3NhxkhSmUXfKnkBMjrwVBzLoDUY95OU,1467
214
218
  webull/data/request/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
215
- webull/data/request/get_batch_historical_bars_request.py,sha256=JKoKnBFOU1nHfwWDXNFZg_RAQqVBV6YVdk0nHk9jzA8,1628
219
+ webull/data/request/get_batch_historical_bars_request.py,sha256=au0h0l0B9A8VcH_FKCQR6-gqQ4jr2gLcH2_Kj6DnKPY,1642
216
220
  webull/data/request/get_corp_action_request.py,sha256=6Ssnn0bZNQfFBt8Asl2DzHMBaXEOA2CZHUWGdA87Uik,1851
217
221
  webull/data/request/get_eod_bars_request.py,sha256=CwbyXeAE-iPKu43zNxcekSw5qOlfEwZsztFxCQvAXuQ,1234
218
- webull/data/request/get_historical_bars_request.py,sha256=0u--nrhCFdK7DfN3kvrtv3ShYK6lJJ0vzmBI2TNzTug,1619
219
- webull/data/request/get_instruments_request.py,sha256=PtrDZOj9FB6UIGolTnwzQrtxqGay0rCj-SkQeVIc4QM,1115
220
- webull/data/request/get_quotes_request.py,sha256=ZdlWAZ-edlCpZl9OAG2S5Fd0LKsxaOPrKozwH42e6BI,1230
221
- webull/data/request/get_snapshot_request.py,sha256=L5PZXYMkmUre_ZyzbDcAYYwokBYM2Yx-wb4B8cfSvIk,1457
222
- webull/data/request/get_tick_request.py,sha256=qXSknYTm1ePFZbGB6Sw4WRGj-I2DVBfJTSURRTCaruc,1352
222
+ webull/data/request/get_historical_bars_request.py,sha256=74j0IAfznLaFt69-9QV2DmSy55pTOyMyee6s59veTgI,1633
223
+ webull/data/request/get_instruments_request.py,sha256=nqWyGTU1PKdXMD7zThzW9T2YDrNMcg_CkNZdCatUxDg,1129
224
+ webull/data/request/get_quotes_request.py,sha256=g4J7lAQZBqoeM67Xm2E-Y2pwNxsqkrECf_r5DTTrS5M,1244
225
+ webull/data/request/get_snapshot_request.py,sha256=OD2PiaxmBCboFDaU8DFTwvfNd2zObYSnPfl1fa49DIs,1471
226
+ webull/data/request/get_tick_request.py,sha256=rUHhQgC8Z_6ensLyCkg3DDK55SlEi0Bc_dhpCIIspDs,1366
223
227
  webull/data/request/subscribe_request.py,sha256=dm93Q5Q4gigAMqAobolaYYSs3wM6QddPUZOjEtJsX-8,1471
224
228
  webull/data/request/unsubscribe_request.py,sha256=hQA4mYM64PgmQEA2otl47-3nCXqjsSY_weFA3_wNbMM,1446
225
- webull/trade/__init__.py,sha256=JTfSBhPsRIOJK94xsud0GqFqJH1DdQkxu8wEGXIsrLo,23
229
+ webull/trade/__init__.py,sha256=-VSbFsVPMzZL7HBJQSQDs15iwUypzThUIX1HgGtvwPU,23
226
230
  webull/trade/trade_client.py,sha256=btEbAFjR6pipJIeNv_vQGBz94_cqZmLOIvSMTvMe4w8,2062
227
231
  webull/trade/trade_events_client.py,sha256=4a7qupeT3dKJRKBQqXNhCai6ENzX6PA4yjTDHHxPR0w,8892
228
232
  webull/trade/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -261,35 +265,39 @@ webull/trade/request/get_trade_calendar_request.py,sha256=h70H27CWDeIYipxDINcjdQ
261
265
  webull/trade/request/get_trade_instrument_detail_request.py,sha256=pDQKeNC3v5hCWnt_lkQddoOdMlwZ6pK_hnysiDCXrOU,910
262
266
  webull/trade/request/get_trade_security_detail_request.py,sha256=X_8wBBPLTAJZf-l0e7t4R2T_W8XWRl-hgAuLztfAnWE,1534
263
267
  webull/trade/request/get_tradeable_instruments_request.py,sha256=7z57iT2Wqb43Kz-kdu09gkTGRPNzo4Aipq4VDbbqAMo,1030
264
- webull/trade/request/palce_order_request.py,sha256=mIlzXoK8D76NASfz4T492-eGZ_8LZRGyihwananl9J4,3276
268
+ webull/trade/request/palce_order_request.py,sha256=vkxUb0H7Ias75IsE7e-vkViYsMWFhquAF1WEzb-_hNw,3322
269
+ webull/trade/request/place_order_request.py,sha256=1wPtF0cTYTYWKh2NfLLYwiAn73ID6XNVXTNdYi4OHW4,3277
265
270
  webull/trade/request/place_order_request_v2.py,sha256=gUuIWLARiOCumnXKNkJDgWJ2eV7dz4U4pNH6GpWxS5s,2192
266
271
  webull/trade/request/replace_order_request.py,sha256=LGDynTVm0AXyfv3inpCa-KVanKMqxJ3N1G6x99eKqo8,2578
267
272
  webull/trade/request/replace_order_request_v2.py,sha256=5R94VCYyStImQptcEMsTWRjNj7weYFCO6-2mLySmcj8,1612
268
273
  webull/trade/request/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
269
- webull/trade/request/v2/cancel_option_request.py,sha256=KKfJi7NE-m3uBa21nE3vdI45fMe4_f84lbb-Emy7xo0,1018
270
- webull/trade/request/v2/cancel_order_request.py,sha256=poXMFDAI3vTpuHkMXIytJIij0S7-G2fcOTZ8DGrUGas,1027
271
- webull/trade/request/v2/get_account_balance_request.py,sha256=S3GtaVbquSzaoql5XJAX8TMgabOgyQ7qs2JznFLpdoI,1050
272
- webull/trade/request/v2/get_account_list.py,sha256=f9PAKtLKgCOFBNdptvlNwGsWQAJDTBCI8jTBDQ4Lr1Y,799
273
- webull/trade/request/v2/get_account_positions_request.py,sha256=4mGlLvkkcItKdW_lIaOcB3ODR7spoKpYPUoOVO1JCAU,901
274
- webull/trade/request/v2/get_order_detail_request.py,sha256=DcofpPxYtn1NJG7oRhwBTNsJventBcVf01ieXvis74s,1003
275
- webull/trade/request/v2/get_order_history_request.py,sha256=807g7duWd6azJVLyWAwFUNRr4R7iAoU53nIK-dUEsws,1307
276
- webull/trade/request/v2/palce_order_request.py,sha256=KnPmdRVx-klyMoq9rO_UqVC76SaigpmTmFh2g-5761w,3222
277
- webull/trade/request/v2/place_option_request.py,sha256=bHxQpqQgrqyLyynf87B4VBJ9qkXi0fgb2oWBf4edxIw,2399
278
- webull/trade/request/v2/preview_option_request.py,sha256=Ed_s3c1WwVlv4GFNbiJizLdFUNCb13Innpw8iMfHcDk,1000
279
- webull/trade/request/v2/preview_order_request.py,sha256=cMAzXpK0WeDXCR42fOyDBNvpb28MoyWhL9teLXlZbDs,2267
280
- webull/trade/request/v2/replace_option_request.py,sha256=qsHvQM_4ZhNDrm61NjRqMEIB3LMaW4IeTwm1waOdWqo,1012
281
- webull/trade/request/v2/replace_order_request.py,sha256=0a4aHcPkV4fB4WyQCvW-Wv0aJ_pCR57N8yLqm8X0wD4,2304
274
+ webull/trade/request/v2/cancel_option_request.py,sha256=XfE_7YtaTwU0a1dPJ8nqGso4Knri5xfVACA3ZbxqU4M,1015
275
+ webull/trade/request/v2/cancel_order_request.py,sha256=M2XQgnGbhu6s2BOhjKfqW2C1OAgXz7dG-PB5VxK9ekU,1030
276
+ webull/trade/request/v2/get_account_balance_request.py,sha256=o-Vi60Tw7MdZ7oGm_8HuWa34BWk_n4hY4JX9q9i3OhM,1049
277
+ webull/trade/request/v2/get_account_list.py,sha256=hQExCKQJeIWw-m1n9kp6zWS5YJdjMgYdBS_7A2-lLHE,877
278
+ webull/trade/request/v2/get_account_list_request.py,sha256=Va6Q3eF2xX5KwsQ_0KPBiH--73HWS1uTl1jjXYIb3s4,806
279
+ webull/trade/request/v2/get_account_positions_request.py,sha256=BPmPStB3h05GlajtcuhEwOFrjViWeqdarRXCR9ay_sQ,900
280
+ webull/trade/request/v2/get_order_detail_request.py,sha256=jYuU8vHdE0fkXZdHqyuZ-rnhHUlQ9Qo5r7FvzmCfEKE,1000
281
+ webull/trade/request/v2/get_order_history_request.py,sha256=pLKnSyGuS_H6Fce4UcKE_s6Ha3yXB7e3ZvL-yXodkLY,1414
282
+ webull/trade/request/v2/get_order_open_request.py,sha256=9Bv5qKRr7Z1u8T8OySP8glhhiS7fotvCCVBh96WrEfg,1220
283
+ webull/trade/request/v2/palce_order_request.py,sha256=Lg2aHbnuDqkCTH3MQjj_IlDGONd-6PWNFAYQZ9z4uP8,1585
284
+ webull/trade/request/v2/place_option_request.py,sha256=LkKni0xDki8uN9rflR5vCCv6b8T1nq8sFjOOMB2v78M,1983
285
+ webull/trade/request/v2/place_order_request.py,sha256=Op4fOoUS5nfMjLEcg8wr7EZH1lFJ3uIS5lhz9uBFYWY,1636
286
+ webull/trade/request/v2/preview_option_request.py,sha256=7iJM8JDnCmnQeVcYBM-3eObRy2KuUf3DLmTqMFla6Rw,1177
287
+ webull/trade/request/v2/preview_order_request.py,sha256=gRld4FcpBFQk7X24hzgs5lmMBv7QswpRc6Hqjvn-P_M,1158
288
+ webull/trade/request/v2/replace_option_request.py,sha256=0S86ToPdfZlZmf85jBQ39a1RkQ8wY7FJZA4hdxmyjN0,1189
289
+ webull/trade/request/v2/replace_order_request.py,sha256=rptKekCa6uSj1rzg8TT7jnuMVCDquhev6naPESqpihU,1193
282
290
  webull/trade/trade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
291
  webull/trade/trade/account_info.py,sha256=C3YcBDZfYOe5QSJEbysblye-W90RbQ7xNing5gLsIng,3622
284
- webull/trade/trade/order_operation.py,sha256=M4o8eQTyUqbvtRBkRH1TNKyaXWLF5qcgL4PIpUKFktM,12846
292
+ webull/trade/trade/order_operation.py,sha256=QrL4Da87RTOSupiAbuXtZigo9602Byp14DQGyR99hkI,12849
285
293
  webull/trade/trade/trade_calendar.py,sha256=rGSiR5GZggQnZOmmpbC-06trgPQgFTvdpUzGMpw2ycw,1415
286
294
  webull/trade/trade/trade_instrument.py,sha256=293IaiLnhw0mAc1IuF3LSgwgve_XZ1Dyf1VeFtmClc8,3474
287
295
  webull/trade/trade/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
288
- webull/trade/trade/v2/account_info_v2.py,sha256=neI3taHZKQK0pqNFh1H3FgBCCQ-mdDx_X_GUJ3sjqpo,2543
289
- webull/trade/trade/v2/order_operation_v2.py,sha256=v_In-u0DUlodl_mlWDM5-XGzGBAK7hAkf_CrkVCNd9g,10580
290
- webull_openapi_python_sdk-1.0.1.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
291
- webull_openapi_python_sdk-1.0.1.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
292
- webull_openapi_python_sdk-1.0.1.dist-info/METADATA,sha256=1mGFNDRnPfslKVhLJEdMC4c_qCD1OF9NuG0pZ_fdeic,702
293
- webull_openapi_python_sdk-1.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
294
- webull_openapi_python_sdk-1.0.1.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
295
- webull_openapi_python_sdk-1.0.1.dist-info/RECORD,,
296
+ webull/trade/trade/v2/account_info_v2.py,sha256=IGY_BGTrZ0h7yQ_nDodNtmKen9gXW6heUFb7VLRQ9bY,2142
297
+ webull/trade/trade/v2/order_operation_v2.py,sha256=m54RH2j45CBBWEnqe4KxrsltAF44XKtPMT4kv8t7djQ,12745
298
+ webull_openapi_python_sdk-1.0.3.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
299
+ webull_openapi_python_sdk-1.0.3.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
300
+ webull_openapi_python_sdk-1.0.3.dist-info/METADATA,sha256=cJoMahByN4mW4eDtaHduWA5szC8tNqDhrif10JjgFvA,702
301
+ webull_openapi_python_sdk-1.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
302
+ webull_openapi_python_sdk-1.0.3.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
303
+ webull_openapi_python_sdk-1.0.3.dist-info/RECORD,,