webull-openapi-python-sdk 2.0.13__py3-none-any.whl → 2.0.14__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/data/data_client.py +5 -0
- webull/__init__.py +1 -1
- webull/core/__init__.py +1 -1
- webull/core/auth/composer/default_signature_composer.py +1 -4
- webull/core/utils/common.py +5 -18
- webull/data/__init__.py +1 -1
- webull/data/quotes/instrument.py +43 -0
- webull/data/quotes/subscribe/basic_result.py +2 -2
- webull/data/request/get_option_contracts_request.py +82 -0
- webull/trade/__init__.py +1 -1
- webull/trade/trade_events_client.py +1 -4
- {webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/METADATA +6 -4
- {webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/RECORD +18 -17
- {webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/WHEEL +0 -0
- {webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/licenses/LICENSE +0 -0
- {webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/licenses/NOTICE +0 -0
- {webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/top_level.txt +0 -0
samples/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '2.0.
|
|
1
|
+
__version__ = '2.0.14'
|
samples/data/data_client.py
CHANGED
|
@@ -265,6 +265,11 @@ if __name__ == '__main__':
|
|
|
265
265
|
if res.status_code == 200:
|
|
266
266
|
print('get_forecast_eps:', res.json())
|
|
267
267
|
|
|
268
|
+
# Option Instrument - Query option contracts by underlying symbol and filters
|
|
269
|
+
res = data_client.instrument.get_option_contracts(Category.US_OPTION.name,"AAPL")
|
|
270
|
+
if res.status_code == 200:
|
|
271
|
+
print('get_option_contracts:', res.json())
|
|
272
|
+
|
|
268
273
|
# Screener - Market Sectors
|
|
269
274
|
res = data_client.screener.get_market_sectors(Category.US_STOCK.name)
|
|
270
275
|
if res.status_code == 200:
|
webull/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '2.0.
|
|
1
|
+
__version__ = '2.0.14'
|
webull/core/__init__.py
CHANGED
|
@@ -59,10 +59,7 @@ def _refresh_sign_headers(host, headers, app_key_id, signer_spec):
|
|
|
59
59
|
sign_headers[hd.APP_KEY] = app_key_id
|
|
60
60
|
sign_headers[hd.TIMESTAMP] = common.get_iso_8601_date()
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
signer_spec = sha_hmac256_new
|
|
64
|
-
else:
|
|
65
|
-
signer_spec = sha_hmac1
|
|
62
|
+
signer_spec = sha_hmac256_new
|
|
66
63
|
|
|
67
64
|
sign_headers[hd.SIGN_VERSION] = signer_spec.get_signer_version()
|
|
68
65
|
sign_headers[hd.SIGN_ALGORITHM] = signer_spec.get_signer_name()
|
webull/core/utils/common.py
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import base64
|
|
17
17
|
import hashlib
|
|
18
18
|
import socket
|
|
19
|
-
from datetime import datetime
|
|
19
|
+
from datetime import datetime, timezone
|
|
20
20
|
import uuid
|
|
21
21
|
import json
|
|
22
22
|
from webull.core.compat import ensure_bytes, ensure_string
|
|
@@ -33,21 +33,21 @@ def get_uuid():
|
|
|
33
33
|
def get_iso_8601_date(dt_as_utc=None):
|
|
34
34
|
if dt_as_utc:
|
|
35
35
|
return dt_as_utc.strftime(FORMAT_ISO_8601)
|
|
36
|
-
d = datetime.
|
|
36
|
+
d = datetime.now(timezone.utc)
|
|
37
37
|
return d.strftime(FORMAT_ISO_8601)
|
|
38
38
|
|
|
39
39
|
def get_iso_8601_date_with_millis(dt_as_utc=None):
|
|
40
40
|
if dt_as_utc:
|
|
41
41
|
d = dt_as_utc
|
|
42
42
|
else:
|
|
43
|
-
d = datetime.
|
|
43
|
+
d = datetime.now(timezone.utc)
|
|
44
44
|
ret = d.strftime(FORMAT_ISO_8601_MILLIS)
|
|
45
45
|
if len(ret) != 27:
|
|
46
46
|
raise RuntimeError("failed to convent timestamp, result: %s" % ret)
|
|
47
47
|
return ret[:-4] + ret[-1:]
|
|
48
48
|
|
|
49
49
|
def parse_timestamp_to_dt(timestamp_of_millis):
|
|
50
|
-
return datetime.
|
|
50
|
+
return datetime.fromtimestamp(timestamp_of_millis / 1000.0, tz=timezone.utc).replace(tzinfo=None)
|
|
51
51
|
|
|
52
52
|
def md5_sum(content):
|
|
53
53
|
content_bytes = ensure_bytes(content)
|
|
@@ -63,17 +63,4 @@ def sha256_hex(content):
|
|
|
63
63
|
return hashlib.sha256(content_bytes).hexdigest()
|
|
64
64
|
|
|
65
65
|
def json_dumps_compact(content):
|
|
66
|
-
return json.dumps(content, ensure_ascii=False, separators=(',', ':'))
|
|
67
|
-
|
|
68
|
-
def is_not_upgrade_api_host(host):
|
|
69
|
-
upgrade_hosts = {
|
|
70
|
-
"api.webull.com","events-api.webull.com",
|
|
71
|
-
"api.webull.hk","events-api.webull.hk",
|
|
72
|
-
"pre-openapi-us-alb.webullbroker.com","pre-openapi-us-events.webullbroker.com",
|
|
73
|
-
"pre-openapi-alb.webullbroker.com","pre-openapi-events.webullbroker.com",
|
|
74
|
-
"us-openapi-alb.uat.webullbroker.com","us-openapi-events.uat.webullbroker.com",
|
|
75
|
-
"hk-openapi.uat.webullbroker.com", "hk-openapi-events-api.uat.webullbroker.com",
|
|
76
|
-
"api.sandbox.webull.hk", "events-api.sandbox.webull.hk"
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
return host not in upgrade_hosts
|
|
66
|
+
return json.dumps(content, ensure_ascii=False, separators=(',', ':'))
|
webull/data/__init__.py
CHANGED
webull/data/quotes/instrument.py
CHANGED
|
@@ -25,6 +25,7 @@ from webull.data.request.get_futures_instruments_request import GetFuturesInstru
|
|
|
25
25
|
from webull.data.request.get_futures_products_request import GetFuturesProductsRequest
|
|
26
26
|
from webull.data.request.get_futures_instruments_by_code_request import GetFuturesInstrumentsByCodeRequest
|
|
27
27
|
from webull.data.request.get_futures_product_class import GetFuturesProductClassRequest
|
|
28
|
+
from webull.data.request.get_option_contracts_request import GetOptionContractsRequest
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
class Instrument:
|
|
@@ -218,6 +219,48 @@ class Instrument:
|
|
|
218
219
|
response = self.client.get_response(event_instrument_request)
|
|
219
220
|
return response
|
|
220
221
|
|
|
222
|
+
def get_option_contracts(self, category=Category.US_OPTION.name, underlying_symbols=None, status=None,
|
|
223
|
+
start_date=None, end_date=None, root_symbol=None, option_symbol=None,
|
|
224
|
+
option_type=None, style=None, strike_price_gte=None, strike_price_lte=None,
|
|
225
|
+
ppind=None, show_deliverables=None, page_size=10, last_instrument_id=None):
|
|
226
|
+
"""
|
|
227
|
+
Query option contracts list by conditions such as underlying_symbols, status, expiration date, etc.
|
|
228
|
+
|
|
229
|
+
:param category: Market category. Value: US_OPTION.
|
|
230
|
+
:param underlying_symbols: Underlying symbol(s), comma-separated for multiple, e.g. AAPL,MSFT.
|
|
231
|
+
:param status: Contract status: LISTING (default), DELISTING.
|
|
232
|
+
:param start_date: Exact expiration date, format YYYY-MM-DD.
|
|
233
|
+
:param end_date: Expiration date lower bound (inclusive), format YYYY-MM-DD.
|
|
234
|
+
:param root_symbol: Root symbol filter (series symbol, e.g. SPXW), mainly for index options and non-standard contracts after CA.
|
|
235
|
+
:param option_symbol: Option symbol, e.g. AAPL250620C00150000.
|
|
236
|
+
:param option_type: Contract type: CALL / PUT.
|
|
237
|
+
:param style: Exercise style: AMERICAN / EUROPEAN.
|
|
238
|
+
:param strike_price_gte: Strike price lower bound (inclusive).
|
|
239
|
+
:param strike_price_lte: Strike price upper bound (inclusive).
|
|
240
|
+
:param ppind: Penny Program Indicator: true = Penny Pilot, false = non-Penny Pilot.
|
|
241
|
+
:param show_deliverables: Whether to return deliverables array in response: true / false, default false.
|
|
242
|
+
:param page_size: Page size, default 10, max 1000.
|
|
243
|
+
:param last_instrument_id: Last instrument_id from previous page for pagination.
|
|
244
|
+
"""
|
|
245
|
+
request = GetOptionContractsRequest()
|
|
246
|
+
request.set_category(category)
|
|
247
|
+
request.set_underlying_symbols(underlying_symbols)
|
|
248
|
+
request.set_status(status)
|
|
249
|
+
request.set_start_date(start_date)
|
|
250
|
+
request.set_end_date(end_date)
|
|
251
|
+
request.set_root_symbol(root_symbol)
|
|
252
|
+
request.set_option_symbol(option_symbol)
|
|
253
|
+
request.set_option_type(option_type)
|
|
254
|
+
request.set_style(style)
|
|
255
|
+
request.set_strike_price_gte(strike_price_gte)
|
|
256
|
+
request.set_strike_price_lte(strike_price_lte)
|
|
257
|
+
request.set_ppind(ppind)
|
|
258
|
+
request.set_show_deliverables(show_deliverables)
|
|
259
|
+
request.set_page_size(page_size)
|
|
260
|
+
request.set_last_instrument_id(last_instrument_id)
|
|
261
|
+
response = self.client.get_response(request)
|
|
262
|
+
return response
|
|
263
|
+
|
|
221
264
|
def get_company_profile(self, symbol, category=Category.US_STOCK.name):
|
|
222
265
|
"""
|
|
223
266
|
Get company profile for one instrument.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
# coding=utf-8
|
|
16
|
-
from datetime import datetime
|
|
16
|
+
from datetime import datetime, timezone
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class BasicResult:
|
|
@@ -33,7 +33,7 @@ class BasicResult:
|
|
|
33
33
|
return self.timestamp
|
|
34
34
|
|
|
35
35
|
def get_timestamp_as_utc(self):
|
|
36
|
-
return datetime.
|
|
36
|
+
return datetime.fromtimestamp(self.timestamp / 1000.0, tz=timezone.utc).replace(tzinfo=None)
|
|
37
37
|
|
|
38
38
|
def get_trading_session(self):
|
|
39
39
|
return self.trading_session
|
|
@@ -0,0 +1,82 @@
|
|
|
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 GetOptionContractsRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/instrument/option/contracts", version="v2", method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_category(self, category):
|
|
26
|
+
self.add_query_param("category", category)
|
|
27
|
+
|
|
28
|
+
def set_underlying_symbols(self, underlying_symbols):
|
|
29
|
+
if underlying_symbols:
|
|
30
|
+
self.add_query_param("underlying_symbols", underlying_symbols)
|
|
31
|
+
|
|
32
|
+
def set_status(self, status):
|
|
33
|
+
if status:
|
|
34
|
+
self.add_query_param("status", status)
|
|
35
|
+
|
|
36
|
+
def set_start_date(self, start_date):
|
|
37
|
+
if start_date:
|
|
38
|
+
self.add_query_param("start_date", start_date)
|
|
39
|
+
|
|
40
|
+
def set_end_date(self, end_date):
|
|
41
|
+
if end_date:
|
|
42
|
+
self.add_query_param("end_date", end_date)
|
|
43
|
+
|
|
44
|
+
def set_root_symbol(self, root_symbol):
|
|
45
|
+
if root_symbol:
|
|
46
|
+
self.add_query_param("root_symbol", root_symbol)
|
|
47
|
+
|
|
48
|
+
def set_option_symbol(self, option_symbol):
|
|
49
|
+
if option_symbol:
|
|
50
|
+
self.add_query_param("option_symbol", option_symbol)
|
|
51
|
+
|
|
52
|
+
def set_option_type(self, option_type):
|
|
53
|
+
if option_type:
|
|
54
|
+
self.add_query_param("option_type", option_type)
|
|
55
|
+
|
|
56
|
+
def set_style(self, style):
|
|
57
|
+
if style:
|
|
58
|
+
self.add_query_param("style", style)
|
|
59
|
+
|
|
60
|
+
def set_strike_price_gte(self, strike_price_gte):
|
|
61
|
+
if strike_price_gte is not None:
|
|
62
|
+
self.add_query_param("strike_price_gte", strike_price_gte)
|
|
63
|
+
|
|
64
|
+
def set_strike_price_lte(self, strike_price_lte):
|
|
65
|
+
if strike_price_lte is not None:
|
|
66
|
+
self.add_query_param("strike_price_lte", strike_price_lte)
|
|
67
|
+
|
|
68
|
+
def set_ppind(self, ppind):
|
|
69
|
+
if ppind is not None:
|
|
70
|
+
self.add_query_param("ppind", ppind)
|
|
71
|
+
|
|
72
|
+
def set_show_deliverables(self, show_deliverables):
|
|
73
|
+
if show_deliverables is not None:
|
|
74
|
+
self.add_query_param("show_deliverables", show_deliverables)
|
|
75
|
+
|
|
76
|
+
def set_page_size(self, page_size):
|
|
77
|
+
if page_size:
|
|
78
|
+
self.add_query_param("page_size", page_size)
|
|
79
|
+
|
|
80
|
+
def set_last_instrument_id(self, last_instrument_id):
|
|
81
|
+
if last_instrument_id:
|
|
82
|
+
self.add_query_param("last_instrument_id", last_instrument_id)
|
webull/trade/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '2.0.
|
|
1
|
+
__version__ = '2.0.14'
|
|
@@ -80,10 +80,7 @@ class TradeEventsClient():
|
|
|
80
80
|
timestamp=int(time.time() * 1000), # millis
|
|
81
81
|
accounts=accounts,
|
|
82
82
|
)
|
|
83
|
-
|
|
84
|
-
signer_spec = sha_hmac256_new
|
|
85
|
-
else:
|
|
86
|
-
signer_spec = sha_hmac1
|
|
83
|
+
signer_spec = sha_hmac256_new
|
|
87
84
|
|
|
88
85
|
signature, metadata = calc_signature(app_key, app_secret, request, signer_spec)
|
|
89
86
|
|
{webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/METADATA
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webull-openapi-python-sdk
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.14
|
|
4
4
|
Summary: Webull Python SDK.
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: Webull
|
|
7
7
|
Author-email:
|
|
8
8
|
License: Apache License 2.0
|
|
9
9
|
Platform: any
|
|
10
|
-
Requires-Python: >=3.8,<3.
|
|
10
|
+
Requires-Python: >=3.8,<3.15
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
12
|
License-File: LICENSE
|
|
13
13
|
License-File: NOTICE
|
|
@@ -18,11 +18,13 @@ Requires-Dist: urllib3>=2.0
|
|
|
18
18
|
Requires-Dist: requests>=2.31.0
|
|
19
19
|
Requires-Dist: six>=1.16.0
|
|
20
20
|
Requires-Dist: cryptography<42,>=3.4; python_version < "3.12"
|
|
21
|
-
Requires-Dist: cryptography<43,>=41.0; python_version >= "3.12"
|
|
21
|
+
Requires-Dist: cryptography<43,>=41.0; python_version >= "3.12" and python_version < "3.14"
|
|
22
|
+
Requires-Dist: cryptography<55,>=43.0; python_version >= "3.14"
|
|
22
23
|
Requires-Dist: protobuf<5,>=4.21.12; python_version < "3.12"
|
|
23
24
|
Requires-Dist: protobuf<6,>=4.25.0; python_version >= "3.12"
|
|
24
25
|
Requires-Dist: grpcio<1.60,>=1.51.1; python_version < "3.12"
|
|
25
|
-
Requires-Dist: grpcio<1.70,>=1.60.0; python_version >= "3.12"
|
|
26
|
+
Requires-Dist: grpcio<1.70,>=1.60.0; python_version >= "3.12" and python_version < "3.14"
|
|
27
|
+
Requires-Dist: grpcio<2,>=1.75.1; python_version >= "3.14"
|
|
26
28
|
Dynamic: author
|
|
27
29
|
Dynamic: description-content-type
|
|
28
30
|
Dynamic: license
|
{webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/RECORD
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
samples/__init__.py,sha256=
|
|
1
|
+
samples/__init__.py,sha256=92nzuacHbIyTc-ygrBL4ngIbhD576OrpBsJbV54K9Oo,23
|
|
2
2
|
samples/account/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
|
|
3
3
|
samples/account/account_client.py,sha256=vwh-nI_JnjwcIeOr1sQPMzG8pAqZwliUusE49ZmYE3s,1796
|
|
4
4
|
samples/assets/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
|
|
5
5
|
samples/assets/assets_client.py,sha256=p9LS2Td3gbUMkHn4LD_9RMCFuaQRUbsKvG4PhZBGJDc,1974
|
|
6
6
|
samples/data/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
|
|
7
|
-
samples/data/data_client.py,sha256=
|
|
7
|
+
samples/data/data_client.py,sha256=6NLHqfXyxIIE6lLAAqU7wT-GaKAgw4h2-UdbIlKeyug,12662
|
|
8
8
|
samples/data/data_client_event.py,sha256=u6Bebo2hTE0Ri1bQHa8nhFEe-fBbdxfNwLpTZh3E1WY,3046
|
|
9
9
|
samples/data/data_streaming_client.py,sha256=2da21SE_Mneo7zbM_l1rkpdBBbI4avrpnSPMxsZIalw,4085
|
|
10
10
|
samples/data/data_streaming_client_async.py,sha256=o_u1ch8JdbcYnLCvDCCUzO-Z1IG7BUKncu_GB_kCbOs,4443
|
|
@@ -23,8 +23,8 @@ samples/trade/trade_client_v3_event.py,sha256=91HlT04KlK8Q5gUnsB8F5ErCFdJRnpDABK
|
|
|
23
23
|
samples/trade/trade_event_client.py,sha256=BWdD1L41LXmDlaig6ku9T3t3fSCCZEdj5nxH1xI1AZA,2653
|
|
24
24
|
samples/watchlist/__init__.py,sha256=rtV5s4_CJgDAT4DGEJa_pNLJU71Wdr5OLz_IQ1EajFQ,567
|
|
25
25
|
samples/watchlist/watchlist_client.py,sha256=lpzJs7SXuSka2KKkJ0u9s83A9iHta5qrjvIdkbfNcwg,3246
|
|
26
|
-
webull/__init__.py,sha256=
|
|
27
|
-
webull/core/__init__.py,sha256=
|
|
26
|
+
webull/__init__.py,sha256=92nzuacHbIyTc-ygrBL4ngIbhD576OrpBsJbV54K9Oo,23
|
|
27
|
+
webull/core/__init__.py,sha256=4Jw-K4t8I7P5uCwwllIWEaKZDbW2Lj9-ANueP5CwmVU,226
|
|
28
28
|
webull/core/client.py,sha256=zxSBiII9KDxc5tHpTerJfV_PKPt8E9e3oTOpiakAtJw,16758
|
|
29
29
|
webull/core/compat.py,sha256=_r6Y_f3vTo_DoxOaCvLjnvOo1KRkD2Z9kXSh8OijEIA,3088
|
|
30
30
|
webull/core/headers.py,sha256=Wj2zev1XYyYsy2b9YKnoK3GqjVsXZO_o2WziMmuVBTw,2061
|
|
@@ -36,7 +36,7 @@ webull/core/auth/algorithm/sha_hmac1.py,sha256=oYHpbwwOK2w9dtSnaOMwGLaw-opBwOxJW
|
|
|
36
36
|
webull/core/auth/algorithm/sha_hmac256.py,sha256=jkkWDQOYuJI6nrKVx89KnLI4sTAFi_zmxNc5bPGX0cw,2638
|
|
37
37
|
webull/core/auth/algorithm/sha_hmac256_new.py,sha256=t8s_YegLV5_qtLLp2CQHKY66OTu_eZyUbGjsHWuSpt8,2155
|
|
38
38
|
webull/core/auth/composer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
webull/core/auth/composer/default_signature_composer.py,sha256=
|
|
39
|
+
webull/core/auth/composer/default_signature_composer.py,sha256=4MfiW5tU24glGwMwp0VpICHwqMPnNAWDcjk11I7AJ7k,5232
|
|
40
40
|
webull/core/auth/signers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
41
|
webull/core/auth/signers/app_key_signer.py,sha256=ojdG3yFefU7olqnQbRElCuJf9VD7UqueFE39-IP_Bfk,2841
|
|
42
42
|
webull/core/auth/signers/signer.py,sha256=4fo94UqLcwUAYziAlCd9GAqNLM8PbLLVHChdjvcfvhY,1790
|
|
@@ -86,11 +86,11 @@ webull/core/retry/retry_condition.py,sha256=Hel380uhtcgmrK0NZiuY015vyBQWzM2dv4np
|
|
|
86
86
|
webull/core/retry/retry_policy.py,sha256=y1Kwc7lw1N4sgvR71AcUbsv8cYYLAJRdDMx7VWO6ubs,2549
|
|
87
87
|
webull/core/retry/retry_policy_context.py,sha256=rVAqF6NE6Aw-OUJY1TaxEhSLLCuYe8Kfs6Poqol0WOk,2036
|
|
88
88
|
webull/core/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
|
-
webull/core/utils/common.py,sha256=
|
|
89
|
+
webull/core/utils/common.py,sha256=bb64grSP7PjaAIe8YYKDNzQ4qwgN7-qW0r24idTEqEY,2177
|
|
90
90
|
webull/core/utils/data.py,sha256=YUyoWY68_2RkKanh3jsDscgGx__FIPh5VNEGXr1Qotc,852
|
|
91
91
|
webull/core/utils/desensitize.py,sha256=f8_ps9BrG3WfXD8ZAw873-_YoGeke1Q55CeDwRmYkqA,1104
|
|
92
92
|
webull/core/utils/validation.py,sha256=gJcIrHYtgo48yVJ0q6O-f5buTYWOcr6ShhDIBhTp-Yg,1957
|
|
93
|
-
webull/data/__init__.py,sha256=
|
|
93
|
+
webull/data/__init__.py,sha256=vKHQlbmJ8E24re-NcknKChjADNdnkJ6eMoSbZcdhosY,39
|
|
94
94
|
webull/data/data_client.py,sha256=FzatKHXgu5xv-FKFaX-mFYdhLTdz7zpRUox9AGWrReQ,2429
|
|
95
95
|
webull/data/data_streaming_client.py,sha256=TQBAilvOLCbcMqacByrniXGr9VjSwjym-4-LUOiqKx8,4456
|
|
96
96
|
webull/data/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -117,7 +117,7 @@ webull/data/quotes/crypto_market_data.py,sha256=UQlxUz0GntvwcRS-Vh_h7cXbhQ045MqP
|
|
|
117
117
|
webull/data/quotes/event_market_data.py,sha256=lARSHqnVxRZZNOIi9uP-Rs5StMIUWtmwrw-p8droqtc,4650
|
|
118
118
|
webull/data/quotes/fundamentals.py,sha256=Dod6lcTwPDvyOjFQxDwW6GrIoDAknIGZOL1M9VRRdX4,14597
|
|
119
119
|
webull/data/quotes/futures_market_data.py,sha256=fc9giYNy1LcdLHOJV31zMbPBKtWDH8kBW5xRFgHzQUA,5596
|
|
120
|
-
webull/data/quotes/instrument.py,sha256=
|
|
120
|
+
webull/data/quotes/instrument.py,sha256=ZEm3PRIUOcDQQGjNGemwM1o0UceI_InRig0yxVhNmpw,15322
|
|
121
121
|
webull/data/quotes/market_data.py,sha256=L7f5V5tmG01lev9-IJU3w6up7EnX42WfI7GtW2mEcw8,14748
|
|
122
122
|
webull/data/quotes/market_streaming_data.py,sha256=cI9xxGpKV_KDS8cgh9azHifBji0yeSuKmH7Jxaqij38,3139
|
|
123
123
|
webull/data/quotes/option_market_data.py,sha256=4fW_GI3u1T-5dluhLRQ60Gbb2bsnhWkSrILYJq-96pw,3305
|
|
@@ -125,7 +125,7 @@ webull/data/quotes/screener.py,sha256=h73YyhW6jBkJH1NvDOceR5lePRXGgtiWrLKQwbn9pA
|
|
|
125
125
|
webull/data/quotes/watchlist.py,sha256=RkuPV7OwC6e4NEpeldTUNWEsYAqGQbVqyOHs9edMuhE,6344
|
|
126
126
|
webull/data/quotes/subscribe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
127
|
webull/data/quotes/subscribe/ask_bid_result.py,sha256=J6Ms_01a44IvzNcw9krwMM0CuA_-zh-5eBGqx2kQbv4,1759
|
|
128
|
-
webull/data/quotes/subscribe/basic_result.py,sha256=
|
|
128
|
+
webull/data/quotes/subscribe/basic_result.py,sha256=8aF4wiPiREjWkTyNCyxhCgSU8sPknJUerXHmLBHVBOs,1495
|
|
129
129
|
webull/data/quotes/subscribe/broker_result.py,sha256=E6pM0Ydr6tU_bPSOeyu1KJf7oYgbO-lIXLIdJQANH4I,1013
|
|
130
130
|
webull/data/quotes/subscribe/event_depth_decoder.py,sha256=-2mOw4o32HWO1a7MuB3hgFoST0ct96Z3PrBFzfCNMJs,1061
|
|
131
131
|
webull/data/quotes/subscribe/event_depth_result.py,sha256=30hUvNqQZNnwGNngmqPO3eFtCkJXd6OjjV8FadN7uXE,1510
|
|
@@ -194,6 +194,7 @@ webull/data/request/get_instruments_request.py,sha256=PmDXrv9hUTHNtwppjV6GMQqTcN
|
|
|
194
194
|
webull/data/request/get_noii_bars_request.py,sha256=_ubNykIQCCDg9cRgeR49FVloF21s2REWlp_KTnUlYEg,1845
|
|
195
195
|
webull/data/request/get_noii_snapshot_request.py,sha256=IQ2HrAyyO2GzC8HEsjz4S0Owc0Zk25d-1ULjTqThmZU,2057
|
|
196
196
|
webull/data/request/get_option_bars_request.py,sha256=ObE4blYHZ_OcKG8Cp6St7ujDTIFIZyBP4MGhx8k9X6k,2556
|
|
197
|
+
webull/data/request/get_option_contracts_request.py,sha256=MzsJ4IZirTgbK0DHS7IPkSgzQNYF4uj3UCD9BMV3Ekw,2847
|
|
197
198
|
webull/data/request/get_option_snapshot_request.py,sha256=XHmtHKN8fF6-rIWfstFr_bLFtgEIx-u61H6Y7WnOrlE,1816
|
|
198
199
|
webull/data/request/get_option_tick_request.py,sha256=MuSFYnM8m1UwOJ2NjzhOJYlWhbYDyiqPbNkKoPQUupI,1648
|
|
199
200
|
webull/data/request/get_quotes_request.py,sha256=g4J7lAQZBqoeM67Xm2E-Y2pwNxsqkrECf_r5DTTrS5M,1244
|
|
@@ -218,9 +219,9 @@ webull/data/request/watchlist/get_watchlist_request.py,sha256=XxzS4gxFbdQSajpFSm
|
|
|
218
219
|
webull/data/request/watchlist/remove_watchlist_instruments_request.py,sha256=qOtQYDBp-PSawAgljnLmtfUce8dAblWI_zB0nnIv3G0,1451
|
|
219
220
|
webull/data/request/watchlist/update_watchlist_instruments_request.py,sha256=KoihfB8MszsAooQGUUMjFmnid_a7xk4YSdEMDO1gh-k,1493
|
|
220
221
|
webull/data/request/watchlist/update_watchlist_request.py,sha256=0s3ftkxiz9hjtXhLORrIUphyDIldRA8pJ4mP5zfbsyU,1466
|
|
221
|
-
webull/trade/__init__.py,sha256=
|
|
222
|
+
webull/trade/__init__.py,sha256=yXt7m86Rgv2MKzdfINzGXI8KcFTyuejeVHNO6umzXGI,22
|
|
222
223
|
webull/trade/trade_client.py,sha256=ck8yRjm-aibv8LGOP0Gk5zg6bv4-bTVjULFpZlCAK2c,2278
|
|
223
|
-
webull/trade/trade_events_client.py,sha256=
|
|
224
|
+
webull/trade/trade_events_client.py,sha256=7JB8fY-Wx-GxkqijjQLle7KKWnpXFm4iw5upOgLx6us,9874
|
|
224
225
|
webull/trade/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
225
226
|
webull/trade/common/account_type.py,sha256=haVAB33MERN6XyPsbrfVQhK9_CpU90VltI6_KDkxzlE,715
|
|
226
227
|
webull/trade/common/category.py,sha256=lrSKMO11wMpw9iWWeefTdWXedJAFfWRlJ76swfqVP0c,947
|
|
@@ -302,9 +303,9 @@ webull/trade/trade/v2/account_info_v2.py,sha256=fs2-XaxklItuhaspzPkthXA5SgbnIffL
|
|
|
302
303
|
webull/trade/trade/v2/order_operation_v2.py,sha256=m54RH2j45CBBWEnqe4KxrsltAF44XKtPMT4kv8t7djQ,12745
|
|
303
304
|
webull/trade/trade/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
304
305
|
webull/trade/trade/v3/order_opration_v3.py,sha256=NsInXC5sPCW8y55jU71BnR0sQYhtWclqCmyK7V09MLc,8275
|
|
305
|
-
webull_openapi_python_sdk-2.0.
|
|
306
|
-
webull_openapi_python_sdk-2.0.
|
|
307
|
-
webull_openapi_python_sdk-2.0.
|
|
308
|
-
webull_openapi_python_sdk-2.0.
|
|
309
|
-
webull_openapi_python_sdk-2.0.
|
|
310
|
-
webull_openapi_python_sdk-2.0.
|
|
306
|
+
webull_openapi_python_sdk-2.0.14.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
|
|
307
|
+
webull_openapi_python_sdk-2.0.14.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
|
|
308
|
+
webull_openapi_python_sdk-2.0.14.dist-info/METADATA,sha256=qv19UdPYTjwI_LCmByM2XOquSVCRJQEKUm2zFA88WLk,1212
|
|
309
|
+
webull_openapi_python_sdk-2.0.14.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
|
|
310
|
+
webull_openapi_python_sdk-2.0.14.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
|
|
311
|
+
webull_openapi_python_sdk-2.0.14.dist-info/RECORD,,
|
{webull_openapi_python_sdk-2.0.13.dist-info → webull_openapi_python_sdk-2.0.14.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|