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.
- samples/__init__.py +1 -1
- samples/trade/trade_client_v2.py +223 -102
- samples/trade/trade_event_client.py +13 -11
- webull/__init__.py +1 -1
- webull/core/__init__.py +1 -1
- webull/core/data/endpoints.json +1 -1
- webull/core/http/initializer/client_initializer.py +43 -7
- webull/core/http/initializer/config/__init__.py +0 -0
- webull/core/http/initializer/config/bean/__init__.py +0 -0
- webull/core/http/initializer/config/bean/query_config_request.py +41 -0
- webull/core/http/initializer/config/config_operation.py +49 -0
- webull/core/http/initializer/token/bean/check_token_request.py +1 -1
- webull/core/http/initializer/token/bean/create_token_request.py +1 -1
- webull/core/http/initializer/token/bean/refresh_token_request.py +1 -1
- webull/core/http/initializer/token/token_operation.py +0 -2
- webull/data/__init__.py +1 -1
- webull/data/data_client.py +3 -0
- webull/data/request/get_batch_historical_bars_request.py +1 -1
- webull/data/request/get_historical_bars_request.py +1 -1
- webull/data/request/get_instruments_request.py +1 -1
- webull/data/request/get_quotes_request.py +1 -1
- webull/data/request/get_snapshot_request.py +1 -1
- webull/data/request/get_tick_request.py +1 -1
- webull/trade/__init__.py +1 -1
- webull/trade/request/palce_order_request.py +3 -2
- webull/trade/request/place_order_request.py +92 -0
- webull/trade/request/v2/cancel_option_request.py +2 -2
- webull/trade/request/v2/cancel_order_request.py +2 -2
- webull/trade/request/v2/get_account_balance_request.py +1 -1
- webull/trade/request/v2/get_account_list.py +3 -0
- webull/trade/request/v2/get_account_list_request.py +23 -0
- webull/trade/request/v2/get_account_positions_request.py +1 -1
- webull/trade/request/v2/get_order_detail_request.py +1 -1
- webull/trade/request/v2/get_order_history_request.py +5 -2
- webull/trade/request/v2/get_order_open_request.py +32 -0
- webull/trade/request/v2/palce_order_request.py +11 -54
- webull/trade/request/v2/place_option_request.py +7 -22
- webull/trade/request/v2/place_order_request.py +44 -0
- webull/trade/request/v2/preview_option_request.py +6 -2
- webull/trade/request/v2/preview_order_request.py +7 -37
- webull/trade/request/v2/replace_option_request.py +6 -2
- webull/trade/request/v2/replace_order_request.py +7 -35
- webull/trade/trade/order_operation.py +5 -2
- webull/trade/trade/v2/account_info_v2.py +8 -11
- webull/trade/trade/v2/order_operation_v2.py +114 -67
- {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/METADATA +1 -1
- {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/RECORD +51 -43
- {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/WHEEL +0 -0
- {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/licenses/LICENSE +0 -0
- {webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/licenses/NOTICE +0 -0
- {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/
|
|
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
|
|
37
|
-
self.
|
|
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.
|
|
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
|
|
53
|
-
if
|
|
54
|
-
self.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
|
28
|
-
|
|
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 =
|
|
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
|
|
38
|
-
|
|
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
|
|
49
|
-
|
|
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.
|
|
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
|
|
35
|
-
|
|
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.
|
|
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
|
|
48
|
-
|
|
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.
|
|
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
|
|
63
|
-
|
|
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.
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
|
88
|
-
|
|
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
|
|
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
|
-
|
|
124
|
-
|
|
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
|
|
140
|
-
|
|
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
|
|
152
|
-
|
|
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
|
|
166
|
-
|
|
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
|
|
178
|
-
|
|
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
|
{webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/RECORD
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
samples/__init__.py,sha256
|
|
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=
|
|
9
|
-
samples/trade/trade_event_client.py,sha256=
|
|
10
|
-
webull/__init__.py,sha256
|
|
11
|
-
webull/core/__init__.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
59
|
-
webull/core/http/initializer/token/bean/create_token_request.py,sha256=
|
|
60
|
-
webull/core/http/initializer/token/bean/refresh_token_request.py,sha256=
|
|
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=
|
|
177
|
-
webull/data/data_client.py,sha256=
|
|
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=
|
|
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=
|
|
219
|
-
webull/data/request/get_instruments_request.py,sha256=
|
|
220
|
-
webull/data/request/get_quotes_request.py,sha256=
|
|
221
|
-
webull/data/request/get_snapshot_request.py,sha256=
|
|
222
|
-
webull/data/request/get_tick_request.py,sha256=
|
|
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
|
|
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=
|
|
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=
|
|
270
|
-
webull/trade/request/v2/cancel_order_request.py,sha256=
|
|
271
|
-
webull/trade/request/v2/get_account_balance_request.py,sha256=
|
|
272
|
-
webull/trade/request/v2/get_account_list.py,sha256=
|
|
273
|
-
webull/trade/request/v2/
|
|
274
|
-
webull/trade/request/v2/
|
|
275
|
-
webull/trade/request/v2/
|
|
276
|
-
webull/trade/request/v2/
|
|
277
|
-
webull/trade/request/v2/
|
|
278
|
-
webull/trade/request/v2/
|
|
279
|
-
webull/trade/request/v2/
|
|
280
|
-
webull/trade/request/v2/
|
|
281
|
-
webull/trade/request/v2/
|
|
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=
|
|
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=
|
|
289
|
-
webull/trade/trade/v2/order_operation_v2.py,sha256=
|
|
290
|
-
webull_openapi_python_sdk-1.0.
|
|
291
|
-
webull_openapi_python_sdk-1.0.
|
|
292
|
-
webull_openapi_python_sdk-1.0.
|
|
293
|
-
webull_openapi_python_sdk-1.0.
|
|
294
|
-
webull_openapi_python_sdk-1.0.
|
|
295
|
-
webull_openapi_python_sdk-1.0.
|
|
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,,
|
{webull_openapi_python_sdk-1.0.1.dist-info → webull_openapi_python_sdk-1.0.3.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|