Skip to content

Commit 52f1081

Browse files
committed
Set a custom user-agent for requests
This is now formatted as: `commercetools-python-sdk/2022.6.4 Python/3.10 (cpython; darwin; arm64)`
1 parent d1e9ec6 commit 52f1081

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/commercetools/base_client.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
import io
21
import os
2+
import platform
3+
import sys
34
import typing
4-
import urllib.parse
55

6-
import requests
7-
from marshmallow.base import SchemaABC
86
from oauthlib.oauth2 import BackendApplicationClient
97
from requests.adapters import HTTPAdapter
108
from requests_oauthlib import OAuth2Session
119
from urllib3 import Retry
1210

11+
from commercetools.version import __version__
1312
from commercetools.constants import HEADER_CORRELATION_ID
1413
from commercetools.exceptions import CommercetoolsError
1514
from commercetools.helpers import _concurrent_retry
16-
from commercetools.protocols import Model
1715
from commercetools.services import ServicesMixin
1816
from commercetools.utils import BaseTokenSaver, DefaultTokenSaver, fix_token_url
1917

@@ -90,6 +88,7 @@ def __init__(
9088
},
9189
token_updater=self._save_token,
9290
)
91+
self._http_client.headers.update({'User-Agent': self._get_user_agent()})
9392

9493
if not http_adapter:
9594
# Register retry handling for Connection errors and 502, 503, 504.
@@ -223,6 +222,12 @@ def _read_env_vars(self, config: dict) -> dict:
223222

224223
return config
225224

225+
def _get_user_agent(self):
226+
py_version = "%d.%d" % sys.version_info[0:2]
227+
arch = platform.machine()
228+
return "commercetools-python-sdk/%s Python/%s (%s; %s; %s)" % (
229+
__version__, py_version, sys.implementation.name, sys.platform, arch)
230+
226231

227232
class Client(BaseClient, ServicesMixin):
228233
def __init__(self, *args, **kwargs):

0 commit comments

Comments
 (0)