webull-openapi-python-sdk 1.0.8__py3-none-any.whl → 1.1.0__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 +8 -0
- samples/data/data_client_event.py +52 -0
- samples/data/data_streaming_client_event.py +66 -0
- samples/trade/trade_client_v3.py +64 -1
- samples/trade/trade_client_v3_event.py +102 -0
- samples/trade/trade_event_client.py +4 -1
- webull/__init__.py +1 -1
- webull/core/__init__.py +1 -1
- webull/data/__init__.py +1 -1
- webull/data/common/category.py +1 -0
- webull/data/common/timespan.py +2 -0
- webull/data/data_client.py +2 -0
- webull/data/data_streaming_client.py +6 -1
- webull/data/quotes/event_market_data.py +50 -0
- webull/data/quotes/futures_market_data.py +24 -2
- webull/data/quotes/instrument.py +43 -0
- webull/data/quotes/market_data.py +24 -0
- webull/data/quotes/subscribe/ask_bid_result.py +9 -3
- webull/data/quotes/subscribe/event_depth_decoder.py +27 -0
- webull/data/quotes/subscribe/event_depth_result.py +46 -0
- webull/data/quotes/subscribe/event_snapshot_decoder.py +29 -0
- webull/data/quotes/subscribe/event_snapshot_result.py +85 -0
- webull/data/quotes/subscribe/message_pb2.py +25 -19
- webull/data/quotes/subscribe/payload_type.py +3 -1
- webull/data/request/get_event_depth_request.py +32 -0
- webull/data/request/get_event_instrument_request.py +33 -0
- webull/data/request/get_event_series_request.py +30 -0
- webull/data/request/get_event_snapshot_request.py +31 -0
- webull/data/request/get_footprint_request.py +45 -0
- webull/data/request/get_futures_footprint_request.py +45 -0
- webull/trade/__init__.py +1 -1
- webull/trade/events/types.py +1 -1
- webull/trade/trade_events_client.py +1 -1
- {webull_openapi_python_sdk-1.0.8.dist-info → webull_openapi_python_sdk-1.1.0.dist-info}/METADATA +1 -1
- {webull_openapi_python_sdk-1.0.8.dist-info → webull_openapi_python_sdk-1.1.0.dist-info}/RECORD +40 -26
- {webull_openapi_python_sdk-1.0.8.dist-info → webull_openapi_python_sdk-1.1.0.dist-info}/WHEEL +1 -1
- {webull_openapi_python_sdk-1.0.8.dist-info → webull_openapi_python_sdk-1.1.0.dist-info}/licenses/LICENSE +0 -0
- {webull_openapi_python_sdk-1.0.8.dist-info → webull_openapi_python_sdk-1.1.0.dist-info}/licenses/NOTICE +0 -0
- {webull_openapi_python_sdk-1.0.8.dist-info → webull_openapi_python_sdk-1.1.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
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.data.quotes.subscribe.basic_result import BasicResult
|
|
18
|
+
from webull.data.quotes.subscribe.ask_bid_result import AskBidResult
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class EventDepthResult:
|
|
22
|
+
def __init__(self, pb_event_depth):
|
|
23
|
+
self.basic = BasicResult(pb_event_depth.basic)
|
|
24
|
+
self.yes_bids = []
|
|
25
|
+
if pb_event_depth.yes_bids:
|
|
26
|
+
for bid in pb_event_depth.yes_bids:
|
|
27
|
+
self.yes_bids.append(AskBidResult(bid))
|
|
28
|
+
self.no_bids = []
|
|
29
|
+
if pb_event_depth.no_bids:
|
|
30
|
+
for bid in pb_event_depth.no_bids:
|
|
31
|
+
self.no_bids.append(AskBidResult(bid))
|
|
32
|
+
|
|
33
|
+
def get_basic(self):
|
|
34
|
+
return self.basic
|
|
35
|
+
|
|
36
|
+
def get_yes_bids(self):
|
|
37
|
+
return self.yes_bids
|
|
38
|
+
|
|
39
|
+
def get_no_bids(self):
|
|
40
|
+
return self.no_bids
|
|
41
|
+
|
|
42
|
+
def __repr__(self):
|
|
43
|
+
return "basic: %s,yes_bids:%s,no_bids:%s" % (self.basic, self.yes_bids, self.no_bids)
|
|
44
|
+
|
|
45
|
+
def __str__(self):
|
|
46
|
+
return self.__repr__()
|
|
@@ -0,0 +1,29 @@
|
|
|
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 EventSnapshot
|
|
17
|
+
from webull.data.quotes.subscribe.event_snapshot_result import EventSnapshotResult
|
|
18
|
+
from webull.data.internal.quotes_payload_decoder import BaseQuotesPayloadDecoder
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class EventSnapshotDecoder(BaseQuotesPayloadDecoder):
|
|
23
|
+
def __init__(self):
|
|
24
|
+
super().__init__()
|
|
25
|
+
|
|
26
|
+
def parse(self, payload):
|
|
27
|
+
eventSnapshot = EventSnapshot()
|
|
28
|
+
eventSnapshot.ParseFromString(payload)
|
|
29
|
+
return EventSnapshotResult(eventSnapshot)
|
|
@@ -0,0 +1,85 @@
|
|
|
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 EventSnapshotResult:
|
|
22
|
+
def __init__(self, pb_event_snapshot):
|
|
23
|
+
self.basic = BasicResult(pb_event_snapshot.basic)
|
|
24
|
+
self.price = Decimal(pb_event_snapshot.price) if pb_event_snapshot.price else None
|
|
25
|
+
self.volume = Decimal(pb_event_snapshot.volume) if pb_event_snapshot.volume else None
|
|
26
|
+
self.last_trade_time = int(pb_event_snapshot.last_trade_time) if pb_event_snapshot.last_trade_time else None
|
|
27
|
+
self.open_interest = Decimal(pb_event_snapshot.open_interest) if pb_event_snapshot.open_interest else None
|
|
28
|
+
self.yes_ask = Decimal(pb_event_snapshot.yes_ask) if pb_event_snapshot.yes_ask else None
|
|
29
|
+
self.yes_ask_size = Decimal(pb_event_snapshot.yes_ask_size) if pb_event_snapshot.yes_ask_size else None
|
|
30
|
+
self.yes_bid = Decimal(pb_event_snapshot.yes_bid) if pb_event_snapshot.yes_bid else None
|
|
31
|
+
self.yes_bid_size = Decimal(pb_event_snapshot.yes_bid_size) if pb_event_snapshot.yes_bid_size else None
|
|
32
|
+
self.no_bid = Decimal(pb_event_snapshot.no_bid) if pb_event_snapshot.no_bid else None
|
|
33
|
+
self.no_bid_size = Decimal(pb_event_snapshot.no_bid_size) if pb_event_snapshot.no_bid_size else None
|
|
34
|
+
self.no_ask = Decimal(pb_event_snapshot.no_ask) if pb_event_snapshot.no_ask else None
|
|
35
|
+
self.no_ask_size = Decimal(pb_event_snapshot.no_ask_size) if pb_event_snapshot.no_ask_size else None
|
|
36
|
+
|
|
37
|
+
def get_basic(self):
|
|
38
|
+
return self.basic
|
|
39
|
+
|
|
40
|
+
def get_price(self):
|
|
41
|
+
return self.price
|
|
42
|
+
|
|
43
|
+
def get_volume(self):
|
|
44
|
+
return self.volume
|
|
45
|
+
|
|
46
|
+
def get_last_trade_time(self):
|
|
47
|
+
return self.last_trade_time
|
|
48
|
+
|
|
49
|
+
def get_open_interest(self):
|
|
50
|
+
return self.open_interest
|
|
51
|
+
|
|
52
|
+
def get_yes_bid(self):
|
|
53
|
+
return self.yes_bid
|
|
54
|
+
|
|
55
|
+
def get_yes_bid_size(self):
|
|
56
|
+
return self.yes_bid_size
|
|
57
|
+
|
|
58
|
+
def get_yes_ask(self):
|
|
59
|
+
return self.yes_ask
|
|
60
|
+
|
|
61
|
+
def get_yes_ask_size(self):
|
|
62
|
+
return self.yes_ask_size
|
|
63
|
+
|
|
64
|
+
def get_no_bid(self):
|
|
65
|
+
return self.no_bid
|
|
66
|
+
|
|
67
|
+
def get_no_bid_size(self):
|
|
68
|
+
return self.no_bid_size
|
|
69
|
+
|
|
70
|
+
def get_no_ask(self):
|
|
71
|
+
return self.no_ask
|
|
72
|
+
|
|
73
|
+
def get_no_ask_size(self):
|
|
74
|
+
return self.no_ask_size
|
|
75
|
+
|
|
76
|
+
def __repr__(self):
|
|
77
|
+
attrs = ['price', 'volume', 'last_trade_time', 'open_interest']
|
|
78
|
+
yes_attrs = [f"yes_{name}" for name in ['bid', 'bid_size', 'ask', 'ask_size']]
|
|
79
|
+
no_attrs = [f"no_{name}" for name in ['bid', 'bid_size', 'ask', 'ask_size']]
|
|
80
|
+
all_attrs = attrs + yes_attrs + no_attrs
|
|
81
|
+
attr_str = ', '.join(f"{name}:{getattr(self, name)}" for name in all_attrs)
|
|
82
|
+
return f"{self.basic}, {attr_str}"
|
|
83
|
+
|
|
84
|
+
def __str__(self):
|
|
85
|
+
return self.__repr__()
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
3
|
# source: message.proto
|
|
4
4
|
"""Generated protocol buffer code."""
|
|
5
|
-
from google.protobuf.internal import builder as _builder
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
7
|
from google.protobuf import symbol_database as _symbol_database
|
|
8
|
+
from google.protobuf.internal import builder as _builder
|
|
9
9
|
# @@protoc_insertion_point(imports)
|
|
10
10
|
|
|
11
11
|
_sym_db = _symbol_database.Default()
|
|
@@ -13,25 +13,31 @@ _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(\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(\tb\x06proto3')
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
_builder.
|
|
18
|
+
_globals = globals()
|
|
19
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
20
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'message_pb2', _globals)
|
|
20
21
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
21
|
-
|
|
22
22
|
DESCRIPTOR._options = None
|
|
23
|
-
_BASIC._serialized_start=17
|
|
24
|
-
_BASIC._serialized_end=107
|
|
25
|
-
_SNAPSHOT._serialized_start=110
|
|
26
|
-
_SNAPSHOT._serialized_end=580
|
|
27
|
-
_QUOTE._serialized_start=582
|
|
28
|
-
_QUOTE._serialized_end=658
|
|
29
|
-
_TICK._serialized_start=660
|
|
30
|
-
_TICK._serialized_end=748
|
|
31
|
-
_ASKBID._serialized_start=750
|
|
32
|
-
_ASKBID._serialized_end=835
|
|
33
|
-
_ORDER._serialized_start=837
|
|
34
|
-
_ORDER._serialized_end=872
|
|
35
|
-
_BROKER._serialized_start=874
|
|
36
|
-
_BROKER._serialized_end=909
|
|
23
|
+
_globals['_BASIC']._serialized_start=17
|
|
24
|
+
_globals['_BASIC']._serialized_end=107
|
|
25
|
+
_globals['_SNAPSHOT']._serialized_start=110
|
|
26
|
+
_globals['_SNAPSHOT']._serialized_end=580
|
|
27
|
+
_globals['_QUOTE']._serialized_start=582
|
|
28
|
+
_globals['_QUOTE']._serialized_end=658
|
|
29
|
+
_globals['_TICK']._serialized_start=660
|
|
30
|
+
_globals['_TICK']._serialized_end=748
|
|
31
|
+
_globals['_ASKBID']._serialized_start=750
|
|
32
|
+
_globals['_ASKBID']._serialized_end=835
|
|
33
|
+
_globals['_ORDER']._serialized_start=837
|
|
34
|
+
_globals['_ORDER']._serialized_end=872
|
|
35
|
+
_globals['_BROKER']._serialized_start=874
|
|
36
|
+
_globals['_BROKER']._serialized_end=909
|
|
37
|
+
_globals['_EVENTSNAPSHOT']._serialized_start=912
|
|
38
|
+
_globals['_EVENTSNAPSHOT']._serialized_end=1181
|
|
39
|
+
_globals['_EVENTQUOTE']._serialized_start=1183
|
|
40
|
+
_globals['_EVENTQUOTE']._serialized_end=1281
|
|
41
|
+
_globals['_EVENTASKBID']._serialized_start=1283
|
|
42
|
+
_globals['_EVENTASKBID']._serialized_end=1325
|
|
37
43
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,32 @@
|
|
|
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 GetEventDepthRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/market-data/event/depth", version='v2', method="GET", query_params={})
|
|
23
|
+
|
|
24
|
+
def set_symbol(self, symbol):
|
|
25
|
+
self.add_query_param("symbol", symbol)
|
|
26
|
+
|
|
27
|
+
def set_category(self, category):
|
|
28
|
+
self.add_query_param("category", category)
|
|
29
|
+
|
|
30
|
+
def set_depth(self, depth):
|
|
31
|
+
if depth:
|
|
32
|
+
self.add_query_param("depth", depth)
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
class GetEventInstrumentRequest(ApiRequest):
|
|
20
|
+
def __init__(self):
|
|
21
|
+
ApiRequest.__init__(self, "/openapi/instrument/event/market/list", version='v2', method="GET", query_params={})
|
|
22
|
+
|
|
23
|
+
def set_series_symbol(self, series_symbol):
|
|
24
|
+
self.add_query_param("series_symbol", series_symbol)
|
|
25
|
+
|
|
26
|
+
def set_expiration_date_after(self, expiration_date_after):
|
|
27
|
+
self.add_query_param("expiration_date_after", expiration_date_after)
|
|
28
|
+
|
|
29
|
+
def set_last_instrument_id(self, last_instrument_id):
|
|
30
|
+
self.add_query_param("last_instrument_id", last_instrument_id)
|
|
31
|
+
|
|
32
|
+
def set_page_size(self, page_size):
|
|
33
|
+
self.add_query_param("page_size", page_size)
|
|
@@ -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
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
class GetEventSeriesRequest(ApiRequest):
|
|
20
|
+
def __init__(self):
|
|
21
|
+
ApiRequest.__init__(self, "/openapi/instrument/event/series/list", version='v2', method="GET", query_params={})
|
|
22
|
+
|
|
23
|
+
def set_category(self, category):
|
|
24
|
+
self.add_query_param("category", category)
|
|
25
|
+
|
|
26
|
+
def set_last_instrument_id(self, last_instrument_id):
|
|
27
|
+
self.add_query_param("last_instrument_id", last_instrument_id)
|
|
28
|
+
|
|
29
|
+
def set_page_size(self, page_size):
|
|
30
|
+
self.add_query_param("page_size", page_size)
|
|
@@ -0,0 +1,31 @@
|
|
|
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 GetEventSnapshotRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/market-data/event/snapshot", version='v2', method="GET", query_params={})
|
|
23
|
+
|
|
24
|
+
def set_symbols(self, symbols):
|
|
25
|
+
if isinstance(symbols, str):
|
|
26
|
+
self.add_query_param("symbols", symbols)
|
|
27
|
+
elif isinstance(symbols, list):
|
|
28
|
+
self.add_query_param("symbols", ",".join(symbols))
|
|
29
|
+
|
|
30
|
+
def set_category(self, category):
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -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
|
|
1
|
+
__version__ = '1.1.0'
|
webull/trade/events/types.py
CHANGED
|
@@ -69,7 +69,7 @@ class TradeEventsClient():
|
|
|
69
69
|
|
|
70
70
|
def _build_request(self, app_key, app_secret, accounts):
|
|
71
71
|
request = pb.SubscribeRequest(
|
|
72
|
-
subscribeType=
|
|
72
|
+
subscribeType= 3, # only 1、2 allowed now
|
|
73
73
|
timestamp=int(time.time() * 1000), # millis
|
|
74
74
|
accounts=accounts,
|
|
75
75
|
)
|
{webull_openapi_python_sdk-1.0.8.dist-info → webull_openapi_python_sdk-1.1.0.dist-info}/RECORD
RENAMED
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
samples/__init__.py,sha256=
|
|
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=
|
|
7
|
+
samples/data/data_client.py,sha256=8FR5ZOY8jWCGfN3XohzyvLdFxYv-TdqfWRKw3E827WY,5248
|
|
8
|
+
samples/data/data_client_event.py,sha256=aqOTvuUOoWhqfac7z8JHWQC1EXWoVaGcnp8tlHO_PVE,2301
|
|
8
9
|
samples/data/data_streaming_client.py,sha256=IdCUNdfo2_dR9OLgWZuIc9U9s-0-uNjwqkf9aLoG-44,4088
|
|
9
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
|
|
10
12
|
samples/order/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
|
|
11
13
|
samples/order/order_option_client.py,sha256=njxr1QZc69_VbHsp9D9cOv1_-AekO2uNYKiY7o0-1Eg,3602
|
|
12
14
|
samples/order/order_stock_client.py,sha256=hYwVwVFVERk-YS7gRcW-LuGfAvcF8VJHZs1qwLcFhYU,3529
|
|
13
15
|
samples/trade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
16
|
samples/trade/trade_client.py,sha256=LyWSvZJH4ByCkRORqP9WdkXfx65A2b6fhc9_GzL8DOM,6258
|
|
15
17
|
samples/trade/trade_client_v2.py,sha256=IO-zmRiUnCmIetTdiYunPh8jVK2VaPrOR77Dwvz1auY,10771
|
|
16
|
-
samples/trade/trade_client_v3.py,sha256=
|
|
17
|
-
samples/trade/
|
|
18
|
-
|
|
19
|
-
webull/
|
|
18
|
+
samples/trade/trade_client_v3.py,sha256=cyP-gEyzi-mXtrb2RBRou8WmCOZhjEgr75lE27DuEZc,18783
|
|
19
|
+
samples/trade/trade_client_v3_event.py,sha256=91HlT04KlK8Q5gUnsB8F5ErCFdJRnpDABKkBfYRc-YE,3932
|
|
20
|
+
samples/trade/trade_event_client.py,sha256=BWdD1L41LXmDlaig6ku9T3t3fSCCZEdj5nxH1xI1AZA,2653
|
|
21
|
+
webull/__init__.py,sha256=b6-WiVk0Li5MaV2rBnHYl104TsouINojSWKqHDas0js,22
|
|
22
|
+
webull/core/__init__.py,sha256=oLOxMxcWb31kX-WluC8UBbN_qh7Ybd68lBklE_xJOK4,225
|
|
20
23
|
webull/core/client.py,sha256=OE_ghPA558eE85MmaU_I3Tg0j-osCQFChTk-6dy4OW0,16398
|
|
21
24
|
webull/core/compat.py,sha256=HDis0D271oQ6OCpA7ViX10NJdhfXdoBfzx6nuV3vrnI,3114
|
|
22
25
|
webull/core/headers.py,sha256=7aMt3_YtaL9Yhqj2T1g7ESQgkI78SAXIk7hMX5U5FgE,2019
|
|
@@ -186,11 +189,11 @@ webull/core/vendored/requests/packages/urllib3/util/ssl_.py,sha256=aRUKc1WIyS-sU
|
|
|
186
189
|
webull/core/vendored/requests/packages/urllib3/util/timeout.py,sha256=sAyiBBds7eOk1oM3ulvVMWZiqx1B743puHqK92XwBcY,10325
|
|
187
190
|
webull/core/vendored/requests/packages/urllib3/util/url.py,sha256=_CgqbyNrQWubrv_y5aWhuutz3mnbj1cvTUe4VYbGYWA,7367
|
|
188
191
|
webull/core/vendored/requests/packages/urllib3/util/wait.py,sha256=0FHS8R3OrMU-97XWt8AxuUStkSGXTct9CfOwY_fWn7U,5971
|
|
189
|
-
webull/data/__init__.py,sha256=
|
|
190
|
-
webull/data/data_client.py,sha256=
|
|
191
|
-
webull/data/data_streaming_client.py,sha256=
|
|
192
|
+
webull/data/__init__.py,sha256=zA42W1xpbGVCnbQBesHoLxJSnAU9Jk30T5FCHCttTUc,38
|
|
193
|
+
webull/data/data_client.py,sha256=1_jrNHrqes7vygUkA1GRI_CIMJp4zcv_Ny8XUDyck1E,1997
|
|
194
|
+
webull/data/data_streaming_client.py,sha256=W6asCGuEmqciCZhIFf4dLh5CNHoxybixhwjF19p4AJk,4271
|
|
192
195
|
webull/data/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
193
|
-
webull/data/common/category.py,sha256=
|
|
196
|
+
webull/data/common/category.py,sha256=7zp-C6ex1eBHw4jTKgeg4X_JASjAM619pLpzQK9XTbc,942
|
|
194
197
|
webull/data/common/connect_ack.py,sha256=PGhtTzb1hAciHRvMSqMUasyEMC6vdV52taP8RbTB8t8,1209
|
|
195
198
|
webull/data/common/contract_type.py,sha256=dQZMIC1kMDbz0TM34ElfsMRI_k2SXsRYyXX6UcI9JG8,715
|
|
196
199
|
webull/data/common/direction.py,sha256=N0Me8CJD3oQDmx2EpNzlvFQDjmmhxa4qKorpV11OLM0,987
|
|
@@ -200,7 +203,7 @@ webull/data/common/expiration_cycle.py,sha256=f1yyOVBnw8jQX16t_QIhyWgfAsaQn8asjd
|
|
|
200
203
|
webull/data/common/instrument_status.py,sha256=T8lMZxvhwV-19XprrvbajEfGQ9gaWVjf0p0UASrCxSQ,789
|
|
201
204
|
webull/data/common/option_type.py,sha256=E4lzZJS-6iX167l6b3mMhWUbNVD0joPxwqGL_mnOGRI,705
|
|
202
205
|
webull/data/common/subscribe_type.py,sha256=2EpBsPXCDjx5q25GonbUur2upQFfGvT6dcSYQ3BolyY,745
|
|
203
|
-
webull/data/common/timespan.py,sha256=
|
|
206
|
+
webull/data/common/timespan.py,sha256=Yjr35Zjhj6qyW1k_pnXkDjm6fWWZ-vs44F_gMWCYCKU,991
|
|
204
207
|
webull/data/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
205
208
|
webull/data/internal/default_retry_policy.py,sha256=g94o5LKtbB5XoDiZWHp7yKGOWTTTOT89bz1ZSlT79mI,3307
|
|
206
209
|
webull/data/internal/exceptions.py,sha256=qtInXjns6ce6KQTtJOxz8M4bywuOJe2sNSAwGJqTWDs,1800
|
|
@@ -210,17 +213,22 @@ webull/data/internal/quotes_payload_decoder.py,sha256=x2XGYDu4wSdc1LLrcIo3BXeb5j
|
|
|
210
213
|
webull/data/internal/quotes_topic.py,sha256=kG4RZTjj01U0e54qoOrJHlLrPeBzXekySasm2uoyXVo,1138
|
|
211
214
|
webull/data/quotes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
212
215
|
webull/data/quotes/crypto_market_data.py,sha256=UQlxUz0GntvwcRS-Vh_h7cXbhQ045MqPlG5AhWUoQI4,3063
|
|
213
|
-
webull/data/quotes/
|
|
214
|
-
webull/data/quotes/
|
|
215
|
-
webull/data/quotes/
|
|
216
|
+
webull/data/quotes/event_market_data.py,sha256=qWOgJoQWO8-RHdoC80EQt2eYdMRgcmUB84mFXAVodTU,2382
|
|
217
|
+
webull/data/quotes/futures_market_data.py,sha256=fc9giYNy1LcdLHOJV31zMbPBKtWDH8kBW5xRFgHzQUA,5596
|
|
218
|
+
webull/data/quotes/instrument.py,sha256=n-QCRSC0iHWvWMc7Nq5tbJT-XOHeHCCQQ44hGyq59Aw,7470
|
|
219
|
+
webull/data/quotes/market_data.py,sha256=5HjzLQje1F7OxasRrjNPZ2d-tkuYJ-aDMZj3fVEO6cI,11329
|
|
216
220
|
webull/data/quotes/market_streaming_data.py,sha256=cI9xxGpKV_KDS8cgh9azHifBji0yeSuKmH7Jxaqij38,3139
|
|
217
221
|
webull/data/quotes/subscribe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
218
|
-
webull/data/quotes/subscribe/ask_bid_result.py,sha256=
|
|
222
|
+
webull/data/quotes/subscribe/ask_bid_result.py,sha256=J6Ms_01a44IvzNcw9krwMM0CuA_-zh-5eBGqx2kQbv4,1759
|
|
219
223
|
webull/data/quotes/subscribe/basic_result.py,sha256=l9pxGlt8HLHwE3plq_6J0OPZ_X4ZjjRfa1f9nExu2dE,1450
|
|
220
224
|
webull/data/quotes/subscribe/broker_result.py,sha256=E6pM0Ydr6tU_bPSOeyu1KJf7oYgbO-lIXLIdJQANH4I,1013
|
|
221
|
-
webull/data/quotes/subscribe/
|
|
225
|
+
webull/data/quotes/subscribe/event_depth_decoder.py,sha256=-2mOw4o32HWO1a7MuB3hgFoST0ct96Z3PrBFzfCNMJs,1061
|
|
226
|
+
webull/data/quotes/subscribe/event_depth_result.py,sha256=30hUvNqQZNnwGNngmqPO3eFtCkJXd6OjjV8FadN7uXE,1510
|
|
227
|
+
webull/data/quotes/subscribe/event_snapshot_decoder.py,sha256=R1Pnz-Ktmwo3vZ7CVTSY9labn-nZealarE6c0cSieRU,1090
|
|
228
|
+
webull/data/quotes/subscribe/event_snapshot_result.py,sha256=npGS47XNpxP8-u6-3K2mLnLeiI8ofgotOOleqfHkUsc,3327
|
|
229
|
+
webull/data/quotes/subscribe/message_pb2.py,sha256=idUZoqQiG4t0An_sA61CjMr3-v7wTO6mZN3I1LB36pc,4445
|
|
222
230
|
webull/data/quotes/subscribe/order_result.py,sha256=bqLjRzCDK0jpQBMm00QxfgV-SPg04lOLYxc8SgpkFDw,912
|
|
223
|
-
webull/data/quotes/subscribe/payload_type.py,sha256=
|
|
231
|
+
webull/data/quotes/subscribe/payload_type.py,sha256=mkbjRKmiAmGmPvTbJlB74HXWkeJHrz32fiMv2xgqRas,762
|
|
224
232
|
webull/data/quotes/subscribe/quote_decoder.py,sha256=vTDKi3TaQ79ODTydVcEEiJR2g0fQLPf5hUOqo7Mi1gw,1016
|
|
225
233
|
webull/data/quotes/subscribe/quote_result.py,sha256=2SoRzSGANphAut1jleNnfZtUhpqqbELRcs1biu440p8,1442
|
|
226
234
|
webull/data/quotes/subscribe/snapshot_decoder.py,sha256=dukBHXa971LHp9oPkgQ4mqL_8yIAU5XSlUIUjpMz2NY,1045
|
|
@@ -234,7 +242,13 @@ webull/data/request/get_crypto_historical_bars_request.py,sha256=FKIp2hB2fPbkMLx
|
|
|
234
242
|
webull/data/request/get_crypto_instruments_request.py,sha256=GwOA9oPBH4qNg7yR-lVjrRSGZDF5zfRUBS4PegKLcjk,1549
|
|
235
243
|
webull/data/request/get_crypto_snapshot_request.py,sha256=W-z9nuBu2RaXqy07zFVHMQs9GP5Hc55vOWWYKoibWVA,1136
|
|
236
244
|
webull/data/request/get_eod_bars_request.py,sha256=CwbyXeAE-iPKu43zNxcekSw5qOlfEwZsztFxCQvAXuQ,1234
|
|
245
|
+
webull/data/request/get_event_depth_request.py,sha256=g0WzBAc7ab8TdYFJ1EWs9KxOvkrXcvuQrDSS-hNrOkQ,1079
|
|
246
|
+
webull/data/request/get_event_instrument_request.py,sha256=fpfxUhra1d5HP3l_srMiFTZF_VPF-ZgIptV8UPnbGzI,1292
|
|
247
|
+
webull/data/request/get_event_series_request.py,sha256=JR7FXikBnivMDZ_NR347wktJKiAoxWEnjy7uZr3etmE,1126
|
|
248
|
+
webull/data/request/get_event_snapshot_request.py,sha256=rQzdZWQ7eFohYMYmWaZInmdpyNi6rR5KhxgDOPlr_Wc,1133
|
|
249
|
+
webull/data/request/get_footprint_request.py,sha256=MnbKhhe7QMkKqyTxmXl-ztDl5l_3kkFhT1vtql82K3Y,1664
|
|
237
250
|
webull/data/request/get_futures_depth_request.py,sha256=d6Tl-75pcJlvX6-beAdko15o8hDhdB-486uxH8AeGIk,1083
|
|
251
|
+
webull/data/request/get_futures_footprint_request.py,sha256=I0l-SlXBKqY61Oxq1zn1EWwLY79euuEoUcrvCzPJlA8,1673
|
|
238
252
|
webull/data/request/get_futures_historical_bars_request.py,sha256=QwvJq33wkJ-_KLZutkh3Z55gQyCDTRkCPwc9UyYcvKU,1330
|
|
239
253
|
webull/data/request/get_futures_instruments_by_code_request.py,sha256=9WjmisgOtzSim-3umKu_2NaATPZBFQxU-3HQ-jBHU1U,1319
|
|
240
254
|
webull/data/request/get_futures_instruments_request.py,sha256=3i1B0v0jhQxx3ETN2Jiu-3aoitUWFN6QfwGNnBfK8eo,1136
|
|
@@ -248,9 +262,9 @@ webull/data/request/get_snapshot_request.py,sha256=OD2PiaxmBCboFDaU8DFTwvfNd2zOb
|
|
|
248
262
|
webull/data/request/get_tick_request.py,sha256=rUHhQgC8Z_6ensLyCkg3DDK55SlEi0Bc_dhpCIIspDs,1366
|
|
249
263
|
webull/data/request/subscribe_request.py,sha256=dm93Q5Q4gigAMqAobolaYYSs3wM6QddPUZOjEtJsX-8,1471
|
|
250
264
|
webull/data/request/unsubscribe_request.py,sha256=hQA4mYM64PgmQEA2otl47-3nCXqjsSY_weFA3_wNbMM,1446
|
|
251
|
-
webull/trade/__init__.py,sha256=
|
|
265
|
+
webull/trade/__init__.py,sha256=XIz3qAg9G9YysQi3Ryp0CN3rtc_JiecHZ9L2vEzcM6s,21
|
|
252
266
|
webull/trade/trade_client.py,sha256=_6lH4KO-jKgKWU28fWNsc9-KEHto-WvaP0gT96BJ_dw,2184
|
|
253
|
-
webull/trade/trade_events_client.py,sha256=
|
|
267
|
+
webull/trade/trade_events_client.py,sha256=KCabQmP9zwo6o8mJYOkXL21dz4yb-SFUcVpKfY88hPQ,8897
|
|
254
268
|
webull/trade/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
255
269
|
webull/trade/common/account_type.py,sha256=haVAB33MERN6XyPsbrfVQhK9_CpU90VltI6_KDkxzlE,715
|
|
256
270
|
webull/trade/common/category.py,sha256=GJ9pDCMkwq7062o9L9o5aPvqHoYxuMqEbInlkfxD65U,911
|
|
@@ -273,7 +287,7 @@ webull/trade/events/default_retry_policy.py,sha256=zWoaJFJSUTtHw_qLj9_AIPBzFW6UH
|
|
|
273
287
|
webull/trade/events/events_pb2.py,sha256=NLolj5VOws1LJT5YIvnuZab9YYhR4lm2-iCkztaARPo,2440
|
|
274
288
|
webull/trade/events/events_pb2_grpc.py,sha256=ebxp_VCJHBQFCKvxBKRUMhW67TZoUn6NwCBvKpiTEpg,2482
|
|
275
289
|
webull/trade/events/signature_composer.py,sha256=zcfBgwQ6XpoEOmeqSnKlgl0j0oDQ0x80_KS_11W3gwA,2496
|
|
276
|
-
webull/trade/events/types.py,sha256=
|
|
290
|
+
webull/trade/events/types.py,sha256=NkBeC3mQPflcg7NDTChVS-DAtDPX_G-od9YJt_FLZTc,689
|
|
277
291
|
webull/trade/request/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
278
292
|
webull/trade/request/cancel_order_request.py,sha256=JbyeVNOVu9xvwzba7Ntw2Sh4BrNVUbBTkYLTKgXIU5U,1016
|
|
279
293
|
webull/trade/request/get_account_balance_request.py,sha256=S9M1rz6HFlIwRpWfkQKVfRo996_DWF8Qe6bGirSnkV0,1042
|
|
@@ -328,9 +342,9 @@ webull/trade/trade/v2/account_info_v2.py,sha256=IGY_BGTrZ0h7yQ_nDodNtmKen9gXW6he
|
|
|
328
342
|
webull/trade/trade/v2/order_operation_v2.py,sha256=m54RH2j45CBBWEnqe4KxrsltAF44XKtPMT4kv8t7djQ,12745
|
|
329
343
|
webull/trade/trade/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
330
344
|
webull/trade/trade/v3/order_opration_v3.py,sha256=_L10--m_XhoMe8YeYjQXVvRoTAWoRRzLU59UeneyMrU,7428
|
|
331
|
-
webull_openapi_python_sdk-1.0.
|
|
332
|
-
webull_openapi_python_sdk-1.0.
|
|
333
|
-
webull_openapi_python_sdk-1.0.
|
|
334
|
-
webull_openapi_python_sdk-1.0.
|
|
335
|
-
webull_openapi_python_sdk-1.0.
|
|
336
|
-
webull_openapi_python_sdk-1.0.
|
|
345
|
+
webull_openapi_python_sdk-1.1.0.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
|
|
346
|
+
webull_openapi_python_sdk-1.1.0.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
|
|
347
|
+
webull_openapi_python_sdk-1.1.0.dist-info/METADATA,sha256=SoLm3zYNjQ1YlShV_dBgS8UZ6_CoQt7FEmu3xqYciGQ,702
|
|
348
|
+
webull_openapi_python_sdk-1.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
349
|
+
webull_openapi_python_sdk-1.1.0.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
|
|
350
|
+
webull_openapi_python_sdk-1.1.0.dist-info/RECORD,,
|