webull-openapi-python-sdk 1.0.8__py3-none-any.whl → 1.0.9__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 CHANGED
@@ -1 +1 @@
1
- __version__ = '1.0.8'
1
+ __version__ = '1.0.9'
@@ -74,6 +74,10 @@ if __name__ == '__main__':
74
74
  if res.status_code == 200:
75
75
  print('get_tick:', res.json())
76
76
 
77
+ res = data_client.market_data.get_footprint("AAPL", Category.US_STOCK.name, Timespan.S5.name)
78
+ if res.status_code == 200:
79
+ print('get_footprint:', res.json())
80
+
77
81
  res = data_client.market_data.get_quotes("AAPL", Category.US_STOCK.name, depth=1, overnight_required=True)
78
82
  if res.status_code == 200:
79
83
  print('get_quotes:', res.json())
@@ -94,6 +98,10 @@ if __name__ == '__main__':
94
98
  if res.status_code == 200:
95
99
  print('get_futures_snapshot:', res.json())
96
100
 
101
+ res = data_client.futures_market_data.get_futures_footprint("SILZ5,6BM6", Category.US_FUTURES.name, Timespan.S5.name)
102
+ if res.status_code == 200:
103
+ print('get_futures_footprint:', res.json())
104
+
97
105
  res = data_client.instrument.get_futures_products(Category.US_FUTURES.name)
98
106
  if res.status_code == 200:
99
107
  print('get_futures_products:', res.json())
webull/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '1.0.8'
1
+ __version__ = '1.0.9'
webull/core/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = '1.0.8'
1
+ __version__ = '1.0.9'
2
2
 
3
3
  import logging
4
4
 
webull/data/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  # coding=utf-8
2
2
 
3
- __version__ = '1.0.8'
3
+ __version__ = '1.0.9'
@@ -16,6 +16,8 @@
16
16
 
17
17
  from webull.core.common.easy_enum import EasyEnum
18
18
  class Timespan(EasyEnum):
19
+ S5 = (12, "5 Second")
20
+ S15= (13, "15 Second")
19
21
  M1 = (1, "1 minute")
20
22
  M5 = (2, "5 minute")
21
23
  M15 = (3, "15 minute")
@@ -11,8 +11,8 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
-
15
-
14
+ from webull.data.common.category import Category
15
+ from webull.data.request.get_futures_footprint_request import GetFuturesFootprintRequest
16
16
  from webull.data.request.get_futures_historical_bars_request import GetFuturesHistoricalBarsRequest
17
17
  from webull.data.request.get_futures_snapshot_request import GetFuturesSnapshotRequest
18
18
  from webull.data.request.get_futures_depth_request import GetFuturesDepthRequest
@@ -86,4 +86,26 @@ class FuturesMarketData:
86
86
  tick_request.set_category(category)
87
87
  tick_request.set_count(count)
88
88
  response = self.client.get_response(tick_request)
89
+ return response
90
+
91
+ def get_futures_footprint(self, symbols, category, timespan, count=None,
92
+ real_time_required=None, trading_sessions=None):
93
+ """
94
+ Search the futures footprint based on the list of futures codes and futures types.
95
+
96
+ :param symbols: Futures Securities symbol, such as: BITH6,BITF26.
97
+ :param category: Security type, enumeration.
98
+ :param timespan: Time granularity.
99
+ :param count: Number of entries: 200 by default, maximum 1200.
100
+ :param real_time_required: Whether to include the latest data or candlestick charts that are not yet finalized. The default is false, meaning they are not included. This option is only used for minute candlestick charts.
101
+ :param trading_sessions: RTH: During trading hours, PRE: Before trading hours, ATH: After trading hours. Default: RTH.
102
+ """
103
+ footprint_request = GetFuturesFootprintRequest()
104
+ footprint_request.set_symbols(symbols)
105
+ footprint_request.set_category(category)
106
+ footprint_request.set_timespan(timespan)
107
+ footprint_request.set_count(count)
108
+ footprint_request.set_real_time_required(real_time_required)
109
+ footprint_request.set_trading_sessions(trading_sessions)
110
+ response = self.client.get_response(footprint_request)
89
111
  return response
@@ -11,9 +11,11 @@
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.data.common.category import Category
14
15
  from webull.data.request.get_batch_historical_bars_request import BatchHistoricalBarsRequest
15
16
  from webull.data.request.get_corp_action_request import GetCorpActionRequest
16
17
  from webull.data.request.get_eod_bars_request import GetEodBarsRequest
18
+ from webull.data.request.get_footprint_request import GetFootprintRequest
17
19
  from webull.data.request.get_historical_bars_request import GetHistoricalBarsRequest
18
20
  from webull.data.request.get_quotes_request import GetQuotesRequest
19
21
  from webull.data.request.get_snapshot_request import GetSnapshotRequest
@@ -183,3 +185,25 @@ class MarketData:
183
185
  eod_corp_action_request.set_last_update_time(last_update_time)
184
186
  response = self.client.get_response(eod_corp_action_request)
185
187
  return response
188
+
189
+ def get_footprint(self, symbols, category, timespan, count=None,
190
+ real_time_required=None, trading_sessions=None):
191
+ """
192
+ Search the footprint based on the list of security codes and security types.
193
+
194
+ :param symbols: Securities symbol, such as: 00700,00981.
195
+ :param category: Security type, enumeration.
196
+ :param timespan: Time granularity.
197
+ :param count: Number of entries: 200 by default, maximum 1200.
198
+ :param real_time_required: Whether to include the latest data or candlestick charts that are not yet finalized. The default is false, meaning they are not included. This option is only used for minute candlestick charts.
199
+ :param trading_sessions: RTH: During trading hours, PRE: Before trading hours, ATH: After trading hours. Default: RTH.
200
+ """
201
+ footprint_request = GetFootprintRequest()
202
+ footprint_request.set_symbols(symbols)
203
+ footprint_request.set_category(category)
204
+ footprint_request.set_timespan(timespan)
205
+ footprint_request.set_count(count)
206
+ footprint_request.set_real_time_required(real_time_required)
207
+ footprint_request.set_trading_sessions(trading_sessions)
208
+ response = self.client.get_response(footprint_request)
209
+ return response
@@ -0,0 +1,45 @@
1
+ # Copyright 2022 Webull
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # coding=utf-8
16
+ from webull.core.request import ApiRequest
17
+
18
+ class GetFootprintRequest(ApiRequest):
19
+ def __init__(self):
20
+ ApiRequest.__init__(self, "/openapi/market-data/stock/footprint", version='v2', method="GET", query_params={})
21
+
22
+ def set_symbols(self, symbols):
23
+ if isinstance(symbols, str):
24
+ self.add_query_param("symbols", symbols)
25
+ elif isinstance(symbols, list):
26
+ self.add_query_param("symbols", ",".join(symbols))
27
+
28
+ def set_category(self, category):
29
+ self.add_query_param("category", category)
30
+
31
+ def set_timespan(self, timespan):
32
+ if timespan:
33
+ self.add_query_param("timespan", timespan)
34
+
35
+ def set_count(self, count):
36
+ if count:
37
+ self.add_query_param("count", count)
38
+
39
+ def set_real_time_required(self, real_time_required):
40
+ if real_time_required:
41
+ self.add_query_param("real_time_required", real_time_required)
42
+
43
+ def set_trading_sessions(self, trading_sessions):
44
+ if trading_sessions:
45
+ self.add_query_param("trading_sessions", trading_sessions)
@@ -0,0 +1,45 @@
1
+ # Copyright 2022 Webull
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # coding=utf-8
16
+ from webull.core.request import ApiRequest
17
+
18
+ class GetFuturesFootprintRequest(ApiRequest):
19
+ def __init__(self):
20
+ ApiRequest.__init__(self, "/openapi/market-data/futures/footprint", version='v2', method="GET", query_params={})
21
+
22
+ def set_symbols(self, symbols):
23
+ if isinstance(symbols, str):
24
+ self.add_query_param("symbols", symbols)
25
+ elif isinstance(symbols, list):
26
+ self.add_query_param("symbols", ",".join(symbols))
27
+
28
+ def set_category(self, category):
29
+ self.add_query_param("category", category)
30
+
31
+ def set_timespan(self, timespan):
32
+ if timespan:
33
+ self.add_query_param("timespan", timespan)
34
+
35
+ def set_count(self, count):
36
+ if count:
37
+ self.add_query_param("count", count)
38
+
39
+ def set_real_time_required(self, real_time_required):
40
+ if real_time_required:
41
+ self.add_query_param("real_time_required", real_time_required)
42
+
43
+ def set_trading_sessions(self, trading_sessions):
44
+ if trading_sessions:
45
+ self.add_query_param("trading_sessions", trading_sessions)
webull/trade/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '1.0.8'
1
+ __version__ = '1.0.9'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webull-openapi-python-sdk
3
- Version: 1.0.8
3
+ Version: 1.0.9
4
4
  Summary: Webull Python SDK.
5
5
  Home-page:
6
6
  Author: Webull
@@ -1,10 +1,10 @@
1
- samples/__init__.py,sha256=mFFUUCx5TqyW1TTFRrWDhXXVMJDMRxXWrkHanVtp9oY,22
1
+ samples/__init__.py,sha256=mg2kb865UYMe9zOkU2VcRPfv-5zzU182OL3t45SXXWk,22
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=rH91Yj7oIF6dBOOzF99cUn_12cgDLkw02SNIQM2nB1o,4868
7
+ samples/data/data_client.py,sha256=8FR5ZOY8jWCGfN3XohzyvLdFxYv-TdqfWRKw3E827WY,5248
8
8
  samples/data/data_streaming_client.py,sha256=IdCUNdfo2_dR9OLgWZuIc9U9s-0-uNjwqkf9aLoG-44,4088
9
9
  samples/data/data_streaming_client_async.py,sha256=o_u1ch8JdbcYnLCvDCCUzO-Z1IG7BUKncu_GB_kCbOs,4443
10
10
  samples/order/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
@@ -15,8 +15,8 @@ samples/trade/trade_client.py,sha256=LyWSvZJH4ByCkRORqP9WdkXfx65A2b6fhc9_GzL8DOM
15
15
  samples/trade/trade_client_v2.py,sha256=IO-zmRiUnCmIetTdiYunPh8jVK2VaPrOR77Dwvz1auY,10771
16
16
  samples/trade/trade_client_v3.py,sha256=70f4VJYWcSJP3ppA8mRAoftJqjRTn5GTeGZck8eLCTg,16526
17
17
  samples/trade/trade_event_client.py,sha256=uOx9EwFaves2yaTNm13BHpYC0IHXSoBL8BWPbDLeFw4,2469
18
- webull/__init__.py,sha256=mFFUUCx5TqyW1TTFRrWDhXXVMJDMRxXWrkHanVtp9oY,22
19
- webull/core/__init__.py,sha256=l5SgEaJNDBxUASBJsNGBJYu3AocnG4Mr89RIOokPiTA,225
18
+ webull/__init__.py,sha256=mg2kb865UYMe9zOkU2VcRPfv-5zzU182OL3t45SXXWk,22
19
+ webull/core/__init__.py,sha256=MSNIk2XHGC6pQer-Z5tjWyHUXb0Wi1O1Vnn93JEPa5A,225
20
20
  webull/core/client.py,sha256=OE_ghPA558eE85MmaU_I3Tg0j-osCQFChTk-6dy4OW0,16398
21
21
  webull/core/compat.py,sha256=HDis0D271oQ6OCpA7ViX10NJdhfXdoBfzx6nuV3vrnI,3114
22
22
  webull/core/headers.py,sha256=7aMt3_YtaL9Yhqj2T1g7ESQgkI78SAXIk7hMX5U5FgE,2019
@@ -186,7 +186,7 @@ webull/core/vendored/requests/packages/urllib3/util/ssl_.py,sha256=aRUKc1WIyS-sU
186
186
  webull/core/vendored/requests/packages/urllib3/util/timeout.py,sha256=sAyiBBds7eOk1oM3ulvVMWZiqx1B743puHqK92XwBcY,10325
187
187
  webull/core/vendored/requests/packages/urllib3/util/url.py,sha256=_CgqbyNrQWubrv_y5aWhuutz3mnbj1cvTUe4VYbGYWA,7367
188
188
  webull/core/vendored/requests/packages/urllib3/util/wait.py,sha256=0FHS8R3OrMU-97XWt8AxuUStkSGXTct9CfOwY_fWn7U,5971
189
- webull/data/__init__.py,sha256=s8jHH-qZ5jY8Rsk-YS41NY0gFUU5YjdRBlDw0egN2-4,38
189
+ webull/data/__init__.py,sha256=16Et8WoO5VLLeKZR62v51Ah41JMXVyb5jk5AlVyFpvU,38
190
190
  webull/data/data_client.py,sha256=JGouoFd37-sxpP6GyOJ0rRw7UuBmXqoIcis0jiRGJPQ,1871
191
191
  webull/data/data_streaming_client.py,sha256=hYqrdKTeIB3Xmp7LMjMwN1XE6Y7bKXX0y-lGX1ty6W4,3870
192
192
  webull/data/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -200,7 +200,7 @@ webull/data/common/expiration_cycle.py,sha256=f1yyOVBnw8jQX16t_QIhyWgfAsaQn8asjd
200
200
  webull/data/common/instrument_status.py,sha256=T8lMZxvhwV-19XprrvbajEfGQ9gaWVjf0p0UASrCxSQ,789
201
201
  webull/data/common/option_type.py,sha256=E4lzZJS-6iX167l6b3mMhWUbNVD0joPxwqGL_mnOGRI,705
202
202
  webull/data/common/subscribe_type.py,sha256=2EpBsPXCDjx5q25GonbUur2upQFfGvT6dcSYQ3BolyY,745
203
- webull/data/common/timespan.py,sha256=Mg-dnvIWclVZRhIkjDiGzRlnOK457PWZ8sY5I8NXRBA,938
203
+ webull/data/common/timespan.py,sha256=Yjr35Zjhj6qyW1k_pnXkDjm6fWWZ-vs44F_gMWCYCKU,991
204
204
  webull/data/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
205
205
  webull/data/internal/default_retry_policy.py,sha256=g94o5LKtbB5XoDiZWHp7yKGOWTTTOT89bz1ZSlT79mI,3307
206
206
  webull/data/internal/exceptions.py,sha256=qtInXjns6ce6KQTtJOxz8M4bywuOJe2sNSAwGJqTWDs,1800
@@ -210,9 +210,9 @@ webull/data/internal/quotes_payload_decoder.py,sha256=x2XGYDu4wSdc1LLrcIo3BXeb5j
210
210
  webull/data/internal/quotes_topic.py,sha256=kG4RZTjj01U0e54qoOrJHlLrPeBzXekySasm2uoyXVo,1138
211
211
  webull/data/quotes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
212
  webull/data/quotes/crypto_market_data.py,sha256=UQlxUz0GntvwcRS-Vh_h7cXbhQ045MqPlG5AhWUoQI4,3063
213
- webull/data/quotes/futures_market_data.py,sha256=cS_VMbVsqz8JGF1zM3Hc5fQBR-30yoRM30jIw8HBD3A,4131
213
+ webull/data/quotes/futures_market_data.py,sha256=fc9giYNy1LcdLHOJV31zMbPBKtWDH8kBW5xRFgHzQUA,5596
214
214
  webull/data/quotes/instrument.py,sha256=4mrL8VEftiPmbEl_7qdpnrgFDuty54tb6C9j_Hh8iME,5089
215
- webull/data/quotes/market_data.py,sha256=6Md4a30byQiJuglKP0EJW28LCYPCHgJmD1NEAkNocUA,9907
215
+ webull/data/quotes/market_data.py,sha256=5HjzLQje1F7OxasRrjNPZ2d-tkuYJ-aDMZj3fVEO6cI,11329
216
216
  webull/data/quotes/market_streaming_data.py,sha256=cI9xxGpKV_KDS8cgh9azHifBji0yeSuKmH7Jxaqij38,3139
217
217
  webull/data/quotes/subscribe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
218
  webull/data/quotes/subscribe/ask_bid_result.py,sha256=EWu5dFMb_BwFGYPLe-f9uCD8_Ftl1wguhpU1qXi2zaY,1552
@@ -234,7 +234,9 @@ webull/data/request/get_crypto_historical_bars_request.py,sha256=FKIp2hB2fPbkMLx
234
234
  webull/data/request/get_crypto_instruments_request.py,sha256=GwOA9oPBH4qNg7yR-lVjrRSGZDF5zfRUBS4PegKLcjk,1549
235
235
  webull/data/request/get_crypto_snapshot_request.py,sha256=W-z9nuBu2RaXqy07zFVHMQs9GP5Hc55vOWWYKoibWVA,1136
236
236
  webull/data/request/get_eod_bars_request.py,sha256=CwbyXeAE-iPKu43zNxcekSw5qOlfEwZsztFxCQvAXuQ,1234
237
+ webull/data/request/get_footprint_request.py,sha256=MnbKhhe7QMkKqyTxmXl-ztDl5l_3kkFhT1vtql82K3Y,1664
237
238
  webull/data/request/get_futures_depth_request.py,sha256=d6Tl-75pcJlvX6-beAdko15o8hDhdB-486uxH8AeGIk,1083
239
+ webull/data/request/get_futures_footprint_request.py,sha256=I0l-SlXBKqY61Oxq1zn1EWwLY79euuEoUcrvCzPJlA8,1673
238
240
  webull/data/request/get_futures_historical_bars_request.py,sha256=QwvJq33wkJ-_KLZutkh3Z55gQyCDTRkCPwc9UyYcvKU,1330
239
241
  webull/data/request/get_futures_instruments_by_code_request.py,sha256=9WjmisgOtzSim-3umKu_2NaATPZBFQxU-3HQ-jBHU1U,1319
240
242
  webull/data/request/get_futures_instruments_request.py,sha256=3i1B0v0jhQxx3ETN2Jiu-3aoitUWFN6QfwGNnBfK8eo,1136
@@ -248,7 +250,7 @@ webull/data/request/get_snapshot_request.py,sha256=OD2PiaxmBCboFDaU8DFTwvfNd2zOb
248
250
  webull/data/request/get_tick_request.py,sha256=rUHhQgC8Z_6ensLyCkg3DDK55SlEi0Bc_dhpCIIspDs,1366
249
251
  webull/data/request/subscribe_request.py,sha256=dm93Q5Q4gigAMqAobolaYYSs3wM6QddPUZOjEtJsX-8,1471
250
252
  webull/data/request/unsubscribe_request.py,sha256=hQA4mYM64PgmQEA2otl47-3nCXqjsSY_weFA3_wNbMM,1446
251
- webull/trade/__init__.py,sha256=iCEPnhz-knfGRAO4Ep2uQaYf4xwhPIjjcgAcNjga8kc,21
253
+ webull/trade/__init__.py,sha256=mu4LFHUATfA8gJh1jUgMKeIXEjlhbQqTC5UyMGu-2Gs,21
252
254
  webull/trade/trade_client.py,sha256=_6lH4KO-jKgKWU28fWNsc9-KEHto-WvaP0gT96BJ_dw,2184
253
255
  webull/trade/trade_events_client.py,sha256=4a7qupeT3dKJRKBQqXNhCai6ENzX6PA4yjTDHHxPR0w,8892
254
256
  webull/trade/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -328,9 +330,9 @@ webull/trade/trade/v2/account_info_v2.py,sha256=IGY_BGTrZ0h7yQ_nDodNtmKen9gXW6he
328
330
  webull/trade/trade/v2/order_operation_v2.py,sha256=m54RH2j45CBBWEnqe4KxrsltAF44XKtPMT4kv8t7djQ,12745
329
331
  webull/trade/trade/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
330
332
  webull/trade/trade/v3/order_opration_v3.py,sha256=_L10--m_XhoMe8YeYjQXVvRoTAWoRRzLU59UeneyMrU,7428
331
- webull_openapi_python_sdk-1.0.8.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
332
- webull_openapi_python_sdk-1.0.8.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
333
- webull_openapi_python_sdk-1.0.8.dist-info/METADATA,sha256=jcAKegwV60urTKWSWSD1BhcsnEPVUU49Cz22cpSAKU8,702
334
- webull_openapi_python_sdk-1.0.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
335
- webull_openapi_python_sdk-1.0.8.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
336
- webull_openapi_python_sdk-1.0.8.dist-info/RECORD,,
333
+ webull_openapi_python_sdk-1.0.9.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
334
+ webull_openapi_python_sdk-1.0.9.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
335
+ webull_openapi_python_sdk-1.0.9.dist-info/METADATA,sha256=I4Ohkx7rljnJeBfQ0goKx42vBTbF48Kp4aSWQF3xEcM,702
336
+ webull_openapi_python_sdk-1.0.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
337
+ webull_openapi_python_sdk-1.0.9.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
338
+ webull_openapi_python_sdk-1.0.9.dist-info/RECORD,,