webull-openapi-python-sdk 2.0.1__py3-none-any.whl → 2.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 CHANGED
@@ -1 +1 @@
1
- __version__ = '2.0.1'
1
+ __version__ = '2.0.3'
@@ -43,7 +43,7 @@ if __name__ == '__main__':
43
43
  print("connect success with session_id:%s" % quotes_session_id)
44
44
  # subscribe
45
45
  symbols = ['KXNHLGAME-26JAN21ANACOL-ANA', 'KXNBAGAME-26JAN20LACCHI-LAC']
46
- sub_types = [SubscribeType.QUOTE.name, SubscribeType.SNAPSHOT.name]
46
+ sub_types = [SubscribeType.QUOTE.name, SubscribeType.SNAPSHOT.name, SubscribeType.TICK.name]
47
47
  client.subscribe(symbols, Category.US_EVENT.name, sub_types)
48
48
 
49
49
  def my_quotes_message_func(client, topic, quotes):
@@ -247,6 +247,7 @@ if __name__ == '__main__':
247
247
  # ============================================================
248
248
 
249
249
  # normal option order
250
+ # position_intent: Currently, only the US market is supported, and only options orders are allowed.
250
251
  normal_option_client_order_id = uuid.uuid4().hex
251
252
  new_normal_option_orders = [
252
253
  {
@@ -259,6 +260,7 @@ if __name__ == '__main__':
259
260
  "side": "BUY",
260
261
  "time_in_force": "GTC",
261
262
  "entrust_type": "QTY",
263
+ "position_intent": "BUY_TO_OPEN",
262
264
  "legs": [
263
265
  {
264
266
  "side": "BUY",
webull/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '2.0.1'
1
+ __version__ = '2.0.3'
webull/core/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = '2.0.1'
1
+ __version__ = '2.0.3'
2
2
 
3
3
  import logging
4
4
 
webull/core/client.py CHANGED
@@ -41,6 +41,7 @@ which was part of Alibaba Group.
41
41
 
42
42
  import json
43
43
  import logging
44
+ import os
44
45
  import platform
45
46
  import time
46
47
  from logging.handlers import TimedRotatingFileHandler
@@ -69,6 +70,8 @@ DEFAULT_READ_TIMEOUT = 10
69
70
  DEFAULT_CONNECTION_TIMEOUT = 5
70
71
  DEFAULT_PORT = 443
71
72
  DEFAULT_REGION_ID = "us"
73
+ DEFAULT_CLIENT_SOURCE = "sdk"
74
+ CLIENT_SOURCE_ENV = "WEBULL_CLIENT_SOURCE"
72
75
 
73
76
  logger = logging.getLogger(__name__)
74
77
 
@@ -254,6 +257,7 @@ class ApiClient:
254
257
  headers['User-Agent'] = self._compose_ua(request)
255
258
  if self.get_token():
256
259
  headers['x-access-token'] = self.get_token()
260
+ headers[hd.CLIENT_SOURCE] = self._get_client_source()
257
261
 
258
262
  protocol = request.get_protocol_type()
259
263
  url = request.get_url()
@@ -270,6 +274,15 @@ class ApiClient:
270
274
  verify=self.get_verify())
271
275
  response.set_content(body, "utf-8")
272
276
  return response
277
+
278
+ @staticmethod
279
+ def _get_client_source():
280
+ client_source = os.environ.get(CLIENT_SOURCE_ENV)
281
+ if client_source is not None:
282
+ client_source = client_source.strip()
283
+ if client_source:
284
+ return client_source
285
+ return DEFAULT_CLIENT_SOURCE
273
286
 
274
287
  def _implementation_of_do_action(self, request, signer=None):
275
288
  if not isinstance(request, BaseRequest):
webull/core/headers.py CHANGED
@@ -40,6 +40,7 @@ which was part of Alibaba Group.
40
40
  """
41
41
 
42
42
  REQUEST_ID = "X-Request-Id"
43
+ CLIENT_SOURCE = "x-webull-client-source"
43
44
  APP_KEY = "x-app-key"
44
45
  SIGNATURE = "x-signature"
45
46
  SIGN_ALGORITHM = "x-signature-algorithm"
@@ -54,4 +55,4 @@ ACCESS_TOKEN = "x-access-token"
54
55
  NATIVE_HOST = "Host"
55
56
  NATIVE_CONTENT_TYPE = "Content-Type"
56
57
  NATIVE_CONTENT_LENGTH = "Content-Length"
57
- NATIVE_USER_AGENT = "User-Agent"
58
+ NATIVE_USER_AGENT = "User-Agent"
webull/data/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  # coding=utf-8
2
2
 
3
- __version__ = '2.0.1'
3
+ __version__ = '2.0.3'
@@ -18,8 +18,9 @@ from webull.data.internal.quotes_client import QuotesClient, LOG_ERR
18
18
  from webull.data.quotes.market_streaming_data import MarketDataStreaming
19
19
  from webull.data.quotes.subscribe.event_depth_decoder import EventDepthDecoder
20
20
  from webull.data.quotes.subscribe.event_snapshot_decoder import EventSnapshotDecoder
21
+ from webull.data.quotes.subscribe.event_tick_decoder import EventTickDecoder
21
22
  from webull.data.quotes.subscribe.payload_type import PAYLOAD_TYPE_QUOTE, PAYLOAD_TYPE_SHAPSHOT, PAYLOAD_TYPE_TICK, \
22
- PAYLOAD_TYPE_EVENT_SHAPSHOT, PAYLOAD_TYPE_EVENT_DEPTH
23
+ PAYLOAD_TYPE_EVENT_SHAPSHOT, PAYLOAD_TYPE_EVENT_DEPTH, PAYLOAD_TYPE_EVENT_TICK
23
24
  from webull.data.quotes.subscribe.quote_decoder import QuoteDecoder
24
25
  from webull.data.quotes.subscribe.snapshot_decoder import SnapshotDecoder
25
26
  from webull.data.quotes.subscribe.tick_decoder import TickDecoder
@@ -44,6 +45,7 @@ class DataStreamingClient(QuotesClient):
44
45
  self.register_payload_decoder(PAYLOAD_TYPE_TICK, TickDecoder())
45
46
  self.register_payload_decoder(PAYLOAD_TYPE_EVENT_DEPTH, EventDepthDecoder())
46
47
  self.register_payload_decoder(PAYLOAD_TYPE_EVENT_SHAPSHOT, EventSnapshotDecoder())
48
+ self.register_payload_decoder(PAYLOAD_TYPE_EVENT_TICK, EventTickDecoder())
47
49
 
48
50
  @property
49
51
  def on_connect_success(self):
@@ -0,0 +1,30 @@
1
+ # Copyright 2022 Webull
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # coding=utf-8
15
+
16
+ from webull.data.quotes.subscribe.message_pb2 import EventTick
17
+ from webull.data.quotes.subscribe.event_tick_result import EventTickResult
18
+
19
+ from webull.data.internal.quotes_payload_decoder import BaseQuotesPayloadDecoder
20
+
21
+
22
+
23
+ class EventTickDecoder(BaseQuotesPayloadDecoder):
24
+ def __init__(self):
25
+ super().__init__()
26
+
27
+ def parse(self, payload):
28
+ eventTick = EventTick()
29
+ eventTick.ParseFromString(payload)
30
+ return EventTickResult(eventTick)
@@ -0,0 +1,56 @@
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 decimal import Decimal
18
+ from webull.data.quotes.subscribe.basic_result import BasicResult
19
+
20
+
21
+ class EventTickResult:
22
+ def __init__(self, pb_event_tick):
23
+ self.basic = BasicResult(pb_event_tick.basic)
24
+ self.time = pb_event_tick.time
25
+ self.yes_price = Decimal(pb_event_tick.yes_price) if pb_event_tick.yes_price else None
26
+ self.no_price = Decimal(pb_event_tick.no_price) if pb_event_tick.no_price else None
27
+ self.volume = pb_event_tick.volume
28
+ self.side = pb_event_tick.side
29
+ self.trade_id = pb_event_tick.trade_id
30
+
31
+ def get_basic(self):
32
+ return self.basic
33
+
34
+ def get_time(self):
35
+ return self.time
36
+
37
+ def get_yes_price(self):
38
+ return self.yes_price
39
+
40
+ def get_no_price(self):
41
+ return self.no_price
42
+
43
+ def get_volume(self):
44
+ return self.volume
45
+
46
+ def get_side(self):
47
+ return self.side
48
+
49
+ def get_trade_id(self):
50
+ return self.trade_id
51
+
52
+ def __repr__(self):
53
+ return "basic: %s,time: %s,yes_price: %s,no_price:%s,volume:%s,side:%s,trade_id:%s" % (self.basic, self.time, self.yes_price, self.no_price, self.volume, self.side, self.trade_id)
54
+
55
+ def __str__(self):
56
+ return self.__repr__()
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
 
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rmessage.proto\"Z\n\x05\x42\x61sic\x12\x0e\n\x06symbol\x18\x01 \x01(\t\x12\x15\n\rinstrument_id\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x03 \x01(\t\x12\x17\n\x0ftrading_session\x18\x04 \x01(\t\"\xd6\x03\n\x08Snapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x12\n\ntrade_time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0c\n\x04open\x18\x04 \x01(\t\x12\x0c\n\x04high\x18\x05 \x01(\t\x12\x0b\n\x03low\x18\x06 \x01(\t\x12\x11\n\tpre_close\x18\x07 \x01(\t\x12\x0e\n\x06volume\x18\x08 \x01(\t\x12\x0e\n\x06\x63hange\x18\t \x01(\t\x12\x14\n\x0c\x63hange_ratio\x18\n \x01(\t\x12\x16\n\x0e\x65xt_trade_time\x18\x0b \x01(\t\x12\x11\n\text_price\x18\x0c \x01(\t\x12\x10\n\x08\x65xt_high\x18\r \x01(\t\x12\x0f\n\x07\x65xt_low\x18\x0e \x01(\t\x12\x12\n\next_volume\x18\x0f \x01(\t\x12\x12\n\next_change\x18\x10 \x01(\t\x12\x18\n\x10\x65xt_change_ratio\x18\x11 \x01(\t\x12\x16\n\x0eovn_trade_time\x18\x12 \x01(\t\x12\x11\n\tovn_price\x18\x13 \x01(\t\x12\x10\n\x08ovn_high\x18\x14 \x01(\t\x12\x0f\n\x07ovn_low\x18\x15 \x01(\t\x12\x12\n\novn_volume\x18\x16 \x01(\t\x12\x12\n\novn_change\x18\x17 \x01(\t\x12\x18\n\x10ovn_change_ratio\x18\x18 \x01(\t\"L\n\x05Quote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x15\n\x04\x61sks\x18\x02 \x03(\x0b\x32\x07.AskBid\x12\x15\n\x04\x62ids\x18\x03 \x03(\x0b\x32\x07.AskBid\"X\n\x04Tick\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x0c\n\x04time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0e\n\x06volume\x18\x04 \x01(\t\x12\x0c\n\x04side\x18\x05 \x01(\t\"U\n\x06\x41skBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\x12\x15\n\x05order\x18\x03 \x03(\x0b\x32\x06.Order\x12\x17\n\x06\x62roker\x18\x04 \x03(\x0b\x32\x07.Broker\"#\n\x05Order\x12\x0c\n\x04mpid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\"#\n\x06\x42roker\x12\x0b\n\x03\x62id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x8d\x02\n\rEventSnapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\r\n\x05price\x18\x02 \x01(\t\x12\x0e\n\x06volume\x18\x03 \x01(\t\x12\x17\n\x0flast_trade_time\x18\x04 \x01(\t\x12\x15\n\ropen_interest\x18\x05 \x01(\t\x12\x0f\n\x07yes_ask\x18\x06 \x01(\t\x12\x0f\n\x07yes_bid\x18\x07 \x01(\t\x12\x14\n\x0cyes_ask_size\x18\x08 \x01(\t\x12\x14\n\x0cyes_bid_size\x18\t \x01(\t\x12\x0e\n\x06no_ask\x18\n \x01(\t\x12\x0e\n\x06no_bid\x18\x0b \x01(\t\x12\x13\n\x0bno_ask_size\x18\x0c \x01(\t\x12\x13\n\x0bno_bid_size\x18\r \x01(\t\"b\n\nEventQuote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x1e\n\x08yes_bids\x18\x02 \x03(\x0b\x32\x0c.EventAskBid\x12\x1d\n\x07no_bids\x18\x03 \x03(\x0b\x32\x0c.EventAskBid\"*\n\x0b\x45ventAskBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\tb\x06proto3')
16
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rmessage.proto\"Z\n\x05\x42\x61sic\x12\x0e\n\x06symbol\x18\x01 \x01(\t\x12\x15\n\rinstrument_id\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x03 \x01(\t\x12\x17\n\x0ftrading_session\x18\x04 \x01(\t\"\xd6\x03\n\x08Snapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x12\n\ntrade_time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0c\n\x04open\x18\x04 \x01(\t\x12\x0c\n\x04high\x18\x05 \x01(\t\x12\x0b\n\x03low\x18\x06 \x01(\t\x12\x11\n\tpre_close\x18\x07 \x01(\t\x12\x0e\n\x06volume\x18\x08 \x01(\t\x12\x0e\n\x06\x63hange\x18\t \x01(\t\x12\x14\n\x0c\x63hange_ratio\x18\n \x01(\t\x12\x16\n\x0e\x65xt_trade_time\x18\x0b \x01(\t\x12\x11\n\text_price\x18\x0c \x01(\t\x12\x10\n\x08\x65xt_high\x18\r \x01(\t\x12\x0f\n\x07\x65xt_low\x18\x0e \x01(\t\x12\x12\n\next_volume\x18\x0f \x01(\t\x12\x12\n\next_change\x18\x10 \x01(\t\x12\x18\n\x10\x65xt_change_ratio\x18\x11 \x01(\t\x12\x16\n\x0eovn_trade_time\x18\x12 \x01(\t\x12\x11\n\tovn_price\x18\x13 \x01(\t\x12\x10\n\x08ovn_high\x18\x14 \x01(\t\x12\x0f\n\x07ovn_low\x18\x15 \x01(\t\x12\x12\n\novn_volume\x18\x16 \x01(\t\x12\x12\n\novn_change\x18\x17 \x01(\t\x12\x18\n\x10ovn_change_ratio\x18\x18 \x01(\t\"L\n\x05Quote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x15\n\x04\x61sks\x18\x02 \x03(\x0b\x32\x07.AskBid\x12\x15\n\x04\x62ids\x18\x03 \x03(\x0b\x32\x07.AskBid\"X\n\x04Tick\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x0c\n\x04time\x18\x02 \x01(\t\x12\r\n\x05price\x18\x03 \x01(\t\x12\x0e\n\x06volume\x18\x04 \x01(\t\x12\x0c\n\x04side\x18\x05 \x01(\t\"U\n\x06\x41skBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\x12\x15\n\x05order\x18\x03 \x03(\x0b\x32\x06.Order\x12\x17\n\x06\x62roker\x18\x04 \x03(\x0b\x32\x07.Broker\"#\n\x05Order\x12\x0c\n\x04mpid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\"#\n\x06\x42roker\x12\x0b\n\x03\x62id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x8d\x02\n\rEventSnapshot\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\r\n\x05price\x18\x02 \x01(\t\x12\x0e\n\x06volume\x18\x03 \x01(\t\x12\x17\n\x0flast_trade_time\x18\x04 \x01(\t\x12\x15\n\ropen_interest\x18\x05 \x01(\t\x12\x0f\n\x07yes_ask\x18\x06 \x01(\t\x12\x0f\n\x07yes_bid\x18\x07 \x01(\t\x12\x14\n\x0cyes_ask_size\x18\x08 \x01(\t\x12\x14\n\x0cyes_bid_size\x18\t \x01(\t\x12\x0e\n\x06no_ask\x18\n \x01(\t\x12\x0e\n\x06no_bid\x18\x0b \x01(\t\x12\x13\n\x0bno_ask_size\x18\x0c \x01(\t\x12\x13\n\x0bno_bid_size\x18\r \x01(\t\"b\n\nEventQuote\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x1e\n\x08yes_bids\x18\x02 \x03(\x0b\x32\x0c.EventAskBid\x12\x1d\n\x07no_bids\x18\x03 \x03(\x0b\x32\x0c.EventAskBid\"*\n\x0b\x45ventAskBid\x12\r\n\x05price\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\t\"\x85\x01\n\tEventTick\x12\x15\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x06.Basic\x12\x11\n\tyes_price\x18\x02 \x01(\t\x12\x10\n\x08no_price\x18\x03 \x01(\t\x12\x0e\n\x06volume\x18\x04 \x01(\t\x12\x0c\n\x04side\x18\x05 \x01(\t\x12\x10\n\x08trade_id\x18\x06 \x01(\t\x12\x0c\n\x04time\x18\x07 \x01(\tb\x06proto3')
17
17
 
18
18
  _globals = globals()
19
19
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -40,4 +40,6 @@ if _descriptor._USE_C_DESCRIPTORS == False:
40
40
  _globals['_EVENTQUOTE']._serialized_end=1281
41
41
  _globals['_EVENTASKBID']._serialized_start=1283
42
42
  _globals['_EVENTASKBID']._serialized_end=1325
43
+ _globals['_EVENTTICK']._serialized_start=1328
44
+ _globals['_EVENTTICK']._serialized_end=1461
43
45
  # @@protoc_insertion_point(module_scope)
@@ -18,4 +18,5 @@ PAYLOAD_TYPE_QUOTE = 'quote'
18
18
  PAYLOAD_TYPE_SHAPSHOT = 'snapshot'
19
19
  PAYLOAD_TYPE_TICK = 'tick'
20
20
  PAYLOAD_TYPE_EVENT_DEPTH = 'event-quote'
21
- PAYLOAD_TYPE_EVENT_SHAPSHOT = 'event-snapshot'
21
+ PAYLOAD_TYPE_EVENT_SHAPSHOT = 'event-snapshot'
22
+ PAYLOAD_TYPE_EVENT_TICK = 'event-tick'
webull/trade/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '1.1.0'
1
+ __version__ = '2.0.3'
@@ -0,0 +1,24 @@
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.common.easy_enum import EasyEnum
18
+
19
+
20
+ class OrderStatus(EasyEnum):
21
+ BUY_TO_OPEN = (1, "BUY_TO_OPEN")
22
+ BUY_TO_CLOSE = (2, "BUY_TO_CLOSE")
23
+ SELL_TO_OPEN = (3, "SELL_TO_OPEN")
24
+ SELL_TO_CLOSE = (4, "SELL_TO_CLOSE")
@@ -68,8 +68,12 @@ class TradeEventsClient():
68
68
  self._on_log = None
69
69
 
70
70
  def _build_request(self, app_key, app_secret, accounts):
71
+ if self._region_id == 'us':
72
+ subscribeType = 3
73
+ else:
74
+ subscribeType = 1
71
75
  request = pb.SubscribeRequest(
72
- subscribeType= 3, # only 1、2 allowed now
76
+ subscribeType= subscribeType, # 1、2、3 allowed now
73
77
  timestamp=int(time.time() * 1000), # millis
74
78
  accounts=accounts,
75
79
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webull-openapi-python-sdk
3
- Version: 2.0.1
3
+ Version: 2.0.3
4
4
  Summary: Webull Python SDK.
5
5
  Home-page:
6
6
  Author: Webull
@@ -1,4 +1,4 @@
1
- samples/__init__.py,sha256=HVx0XJJ9OYFWBBPBCUFYb8Nm43ChPg9GZLh_dkxh9qI,22
1
+ samples/__init__.py,sha256=fcRMgwI40iVFwre_3iKQA-N6sHUo3pAErXcKJS63DRg,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
@@ -8,21 +8,21 @@ samples/data/data_client.py,sha256=8FR5ZOY8jWCGfN3XohzyvLdFxYv-TdqfWRKw3E827WY,5
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
11
- samples/data/data_streaming_client_event.py,sha256=BRMxFdkzEHyppLlhvFfzvET0RQZPxHxAHIn3g-dIf10,3050
11
+ samples/data/data_streaming_client_event.py,sha256=688YhVFA53AWkYBq5-PBXMKIBICf626LpgN6ESHaRSA,3075
12
12
  samples/order/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
13
13
  samples/order/order_option_client.py,sha256=njxr1QZc69_VbHsp9D9cOv1_-AekO2uNYKiY7o0-1Eg,3602
14
14
  samples/order/order_stock_client.py,sha256=hYwVwVFVERk-YS7gRcW-LuGfAvcF8VJHZs1qwLcFhYU,3529
15
15
  samples/trade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  samples/trade/trade_client.py,sha256=LyWSvZJH4ByCkRORqP9WdkXfx65A2b6fhc9_GzL8DOM,6258
17
17
  samples/trade/trade_client_v2.py,sha256=IO-zmRiUnCmIetTdiYunPh8jVK2VaPrOR77Dwvz1auY,10771
18
- samples/trade/trade_client_v3.py,sha256=cyP-gEyzi-mXtrb2RBRou8WmCOZhjEgr75lE27DuEZc,18783
18
+ samples/trade/trade_client_v3.py,sha256=0PPa8Ws8xquKkoxLNI9kdpHqbmIDvjrX449NCW-dwYs,18933
19
19
  samples/trade/trade_client_v3_event.py,sha256=91HlT04KlK8Q5gUnsB8F5ErCFdJRnpDABKkBfYRc-YE,3932
20
20
  samples/trade/trade_event_client.py,sha256=BWdD1L41LXmDlaig6ku9T3t3fSCCZEdj5nxH1xI1AZA,2653
21
- webull/__init__.py,sha256=HVx0XJJ9OYFWBBPBCUFYb8Nm43ChPg9GZLh_dkxh9qI,22
22
- webull/core/__init__.py,sha256=CKVmP2FHXfivZ3u51p22RbuZDdijZIzI2hM4OAXovBY,225
23
- webull/core/client.py,sha256=QTH_2CuPdtl5hgfjZMMHV9XkC2NkHe929t_EC-oCYqs,16314
21
+ webull/__init__.py,sha256=fcRMgwI40iVFwre_3iKQA-N6sHUo3pAErXcKJS63DRg,22
22
+ webull/core/__init__.py,sha256=FcVKsgDnL3EbPKiGrfc1WhD0vfJeIKh81XVz9Zkt7Iw,225
23
+ webull/core/client.py,sha256=zxSBiII9KDxc5tHpTerJfV_PKPt8E9e3oTOpiakAtJw,16758
24
24
  webull/core/compat.py,sha256=_r6Y_f3vTo_DoxOaCvLjnvOo1KRkD2Z9kXSh8OijEIA,3088
25
- webull/core/headers.py,sha256=7aMt3_YtaL9Yhqj2T1g7ESQgkI78SAXIk7hMX5U5FgE,2019
25
+ webull/core/headers.py,sha256=Wj2zev1XYyYsy2b9YKnoK3GqjVsXZO_o2WziMmuVBTw,2061
26
26
  webull/core/request.py,sha256=y8l_GwWdRLPr8x-0Qm7xUNg2AEQ8g67vGJZSCbTbMQE,8184
27
27
  webull/core/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  webull/core/auth/credentials.py,sha256=n9rjS7VKxwZ1VPNQhENNil5QBO3ApKrYrSxC3eaEEuA,1766
@@ -84,9 +84,9 @@ webull/core/utils/common.py,sha256=iQ-HWNhpg8EhtIKS7Iqp2xHrQmwEwcK9PrMwlTmu1C4,1
84
84
  webull/core/utils/data.py,sha256=YUyoWY68_2RkKanh3jsDscgGx__FIPh5VNEGXr1Qotc,852
85
85
  webull/core/utils/desensitize.py,sha256=f8_ps9BrG3WfXD8ZAw873-_YoGeke1Q55CeDwRmYkqA,1104
86
86
  webull/core/utils/validation.py,sha256=gJcIrHYtgo48yVJ0q6O-f5buTYWOcr6ShhDIBhTp-Yg,1957
87
- webull/data/__init__.py,sha256=-rH-MW-sMfAxCGlxhrhxxeKK40LYPLfSVJ5iJJvpC_Q,38
87
+ webull/data/__init__.py,sha256=4Y-EchMuHL8JNhKybjRY2_ubZGPiUmp7PaLUBuPehss,38
88
88
  webull/data/data_client.py,sha256=1_jrNHrqes7vygUkA1GRI_CIMJp4zcv_Ny8XUDyck1E,1997
89
- webull/data/data_streaming_client.py,sha256=W6asCGuEmqciCZhIFf4dLh5CNHoxybixhwjF19p4AJk,4271
89
+ webull/data/data_streaming_client.py,sha256=TQBAilvOLCbcMqacByrniXGr9VjSwjym-4-LUOiqKx8,4456
90
90
  webull/data/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
91
  webull/data/common/category.py,sha256=7zp-C6ex1eBHw4jTKgeg4X_JASjAM619pLpzQK9XTbc,942
92
92
  webull/data/common/connect_ack.py,sha256=PGhtTzb1hAciHRvMSqMUasyEMC6vdV52taP8RbTB8t8,1209
@@ -121,9 +121,11 @@ webull/data/quotes/subscribe/event_depth_decoder.py,sha256=-2mOw4o32HWO1a7MuB3hg
121
121
  webull/data/quotes/subscribe/event_depth_result.py,sha256=30hUvNqQZNnwGNngmqPO3eFtCkJXd6OjjV8FadN7uXE,1510
122
122
  webull/data/quotes/subscribe/event_snapshot_decoder.py,sha256=R1Pnz-Ktmwo3vZ7CVTSY9labn-nZealarE6c0cSieRU,1090
123
123
  webull/data/quotes/subscribe/event_snapshot_result.py,sha256=npGS47XNpxP8-u6-3K2mLnLeiI8ofgotOOleqfHkUsc,3327
124
- webull/data/quotes/subscribe/message_pb2.py,sha256=idUZoqQiG4t0An_sA61CjMr3-v7wTO6mZN3I1LB36pc,4445
124
+ webull/data/quotes/subscribe/event_tick_decoder.py,sha256=-zwRK6E82ZZcl9bh8EizoI6P9u43vTmXJil1Rpd9CVI,1055
125
+ webull/data/quotes/subscribe/event_tick_result.py,sha256=t2N8l6YoXCZA5IntPAQTd4fMFIf_X0uSicmfeCMWJt8,1801
126
+ webull/data/quotes/subscribe/message_pb2.py,sha256=A0Efl43sUsebfaGxKc1J-2MZgykMgxuCBQimT5cbelI,4836
125
127
  webull/data/quotes/subscribe/order_result.py,sha256=bqLjRzCDK0jpQBMm00QxfgV-SPg04lOLYxc8SgpkFDw,912
126
- webull/data/quotes/subscribe/payload_type.py,sha256=mkbjRKmiAmGmPvTbJlB74HXWkeJHrz32fiMv2xgqRas,762
128
+ webull/data/quotes/subscribe/payload_type.py,sha256=2b-Xd0RzME0ou-SaKarLZ5ZRwBZVwA7TevIH4075IHU,801
127
129
  webull/data/quotes/subscribe/quote_decoder.py,sha256=vTDKi3TaQ79ODTydVcEEiJR2g0fQLPf5hUOqo7Mi1gw,1016
128
130
  webull/data/quotes/subscribe/quote_result.py,sha256=2SoRzSGANphAut1jleNnfZtUhpqqbELRcs1biu440p8,1442
129
131
  webull/data/quotes/subscribe/snapshot_decoder.py,sha256=dukBHXa971LHp9oPkgQ4mqL_8yIAU5XSlUIUjpMz2NY,1045
@@ -161,9 +163,9 @@ webull/data/request/get_snapshot_request.py,sha256=OD2PiaxmBCboFDaU8DFTwvfNd2zOb
161
163
  webull/data/request/get_tick_request.py,sha256=rUHhQgC8Z_6ensLyCkg3DDK55SlEi0Bc_dhpCIIspDs,1366
162
164
  webull/data/request/subscribe_request.py,sha256=dm93Q5Q4gigAMqAobolaYYSs3wM6QddPUZOjEtJsX-8,1471
163
165
  webull/data/request/unsubscribe_request.py,sha256=hQA4mYM64PgmQEA2otl47-3nCXqjsSY_weFA3_wNbMM,1446
164
- webull/trade/__init__.py,sha256=XIz3qAg9G9YysQi3Ryp0CN3rtc_JiecHZ9L2vEzcM6s,21
166
+ webull/trade/__init__.py,sha256=U8BEyItnCRffb5NQFYKwkJf1OI4ctsrASQHqqSyNC4k,21
165
167
  webull/trade/trade_client.py,sha256=_6lH4KO-jKgKWU28fWNsc9-KEHto-WvaP0gT96BJ_dw,2184
166
- webull/trade/trade_events_client.py,sha256=KCabQmP9zwo6o8mJYOkXL21dz4yb-SFUcVpKfY88hPQ,8897
168
+ webull/trade/trade_events_client.py,sha256=Vl4qsIEuDagjI7csqKr7K0fqHXbu-iN-5Ti28HBcub4,9017
167
169
  webull/trade/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
170
  webull/trade/common/account_type.py,sha256=haVAB33MERN6XyPsbrfVQhK9_CpU90VltI6_KDkxzlE,715
169
171
  webull/trade/common/category.py,sha256=GJ9pDCMkwq7062o9L9o5aPvqHoYxuMqEbInlkfxD65U,911
@@ -178,6 +180,7 @@ webull/trade/common/order_side.py,sha256=9kfuMnMzG3a_8Qq9jbeei9tQCVn3sTFA0jYAu6u
178
180
  webull/trade/common/order_status.py,sha256=A9fSZR3x2EyQ87IFtj08QvPHxoxNJ7yTN0162u877FU,828
179
181
  webull/trade/common/order_tif.py,sha256=ehP2gFgReW11aiqQFcO4k3EtqVC7NRaqldIPEfE6EOY,759
180
182
  webull/trade/common/order_type.py,sha256=dXOaTtRQiubudg3A5sj3imaGjaedqUJvG_6bkco7vxc,1099
183
+ webull/trade/common/position_intent.py,sha256=nfO6vihp3z_rk4QUpOlUuFEiLL3KVWja2G-Dd-UtslU,821
181
184
  webull/trade/common/trade_policy.py,sha256=Tm3RN2_fZSXl5APPWeg8riEHlrvFURPt-dGIK6zDbPU,800
182
185
  webull/trade/common/trading_date_type.py,sha256=xw8-oxBZNB-jdF25-PRv_5gwpXs8MksVZyZ7ZXRMLqY,747
183
186
  webull/trade/common/trailing_type.py,sha256=w-wi2Gy-v-8b2oUprQHobwql639Je4FIlPKxojlagz4,729
@@ -241,9 +244,9 @@ webull/trade/trade/v2/account_info_v2.py,sha256=IGY_BGTrZ0h7yQ_nDodNtmKen9gXW6he
241
244
  webull/trade/trade/v2/order_operation_v2.py,sha256=m54RH2j45CBBWEnqe4KxrsltAF44XKtPMT4kv8t7djQ,12745
242
245
  webull/trade/trade/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
243
246
  webull/trade/trade/v3/order_opration_v3.py,sha256=_L10--m_XhoMe8YeYjQXVvRoTAWoRRzLU59UeneyMrU,7428
244
- webull_openapi_python_sdk-2.0.1.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
245
- webull_openapi_python_sdk-2.0.1.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
246
- webull_openapi_python_sdk-2.0.1.dist-info/METADATA,sha256=IWneUjLD5s4vTtuGPn5ESuhEzy0xhE3lEpV1cVhlJx0,1032
247
- webull_openapi_python_sdk-2.0.1.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
248
- webull_openapi_python_sdk-2.0.1.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
249
- webull_openapi_python_sdk-2.0.1.dist-info/RECORD,,
247
+ webull_openapi_python_sdk-2.0.3.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
248
+ webull_openapi_python_sdk-2.0.3.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
249
+ webull_openapi_python_sdk-2.0.3.dist-info/METADATA,sha256=ss5J4i660Gr9NnkRVjQv_2teC3DVyvOvw9JFrpGkVGE,1032
250
+ webull_openapi_python_sdk-2.0.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
251
+ webull_openapi_python_sdk-2.0.3.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
252
+ webull_openapi_python_sdk-2.0.3.dist-info/RECORD,,