Skip to content

Commit 9724cfb

Browse files
author
方佳
committed
Merge branch 'main_merge_20260416' into 'main'
feat: add configurable client source header for HTTP requests See merge request webull/webull-openapi-python-sdk!20
2 parents d61f821 + cad6d52 commit 9724cfb

7 files changed

Lines changed: 20 additions & 6 deletions

File tree

‎samples/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.0.2'
1+
__version__ = '2.0.3'

‎webull/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.0.2'
1+
__version__ = '2.0.3'

‎webull/core/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = '2.0.2'
1+
__version__ = '2.0.3'
22

33
import logging
44

‎webull/core/client.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141

4242
import json
4343
import logging
44+
import os
4445
import platform
4546
import time
4647
from logging.handlers import TimedRotatingFileHandler
@@ -69,6 +70,8 @@
6970
DEFAULT_CONNECTION_TIMEOUT = 5
7071
DEFAULT_PORT = 443
7172
DEFAULT_REGION_ID = "us"
73+
DEFAULT_CLIENT_SOURCE = "sdk"
74+
CLIENT_SOURCE_ENV = "WEBULL_CLIENT_SOURCE"
7275

7376
logger = logging.getLogger(__name__)
7477

@@ -254,6 +257,7 @@ def _make_http_response(self, endpoint, request, read_timeout, connect_timeout,
254257
headers['User-Agent'] = self._compose_ua(request)
255258
if self.get_token():
256259
headers['x-access-token'] = self.get_token()
260+
headers[hd.CLIENT_SOURCE] = self._get_client_source()
257261

258262
protocol = request.get_protocol_type()
259263
url = request.get_url()
@@ -270,6 +274,15 @@ def _make_http_response(self, endpoint, request, read_timeout, connect_timeout,
270274
verify=self.get_verify())
271275
response.set_content(body, "utf-8")
272276
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
273286

274287
def _implementation_of_do_action(self, request, signer=None):
275288
if not isinstance(request, BaseRequest):

‎webull/core/headers.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"""
4141

4242
REQUEST_ID = "X-Request-Id"
43+
CLIENT_SOURCE = "x-webull-client-source"
4344
APP_KEY = "x-app-key"
4445
SIGNATURE = "x-signature"
4546
SIGN_ALGORITHM = "x-signature-algorithm"
@@ -54,4 +55,4 @@
5455
NATIVE_HOST = "Host"
5556
NATIVE_CONTENT_TYPE = "Content-Type"
5657
NATIVE_CONTENT_LENGTH = "Content-Length"
57-
NATIVE_USER_AGENT = "User-Agent"
58+
NATIVE_USER_AGENT = "User-Agent"

‎webull/data/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# coding=utf-8
22

3-
__version__ = '2.0.2'
3+
__version__ = '2.0.3'

‎webull/trade/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.0.2'
1+
__version__ = '2.0.3'

0 commit comments

Comments
 (0)