|
1 | | -import io |
2 | 1 | import os |
| 2 | +import platform |
| 3 | +import sys |
3 | 4 | import typing |
4 | | -import urllib.parse |
5 | 5 |
|
6 | | -import requests |
7 | | -from marshmallow.base import SchemaABC |
8 | 6 | from oauthlib.oauth2 import BackendApplicationClient |
9 | 7 | from requests.adapters import HTTPAdapter |
10 | 8 | from requests_oauthlib import OAuth2Session |
11 | 9 | from urllib3 import Retry |
12 | 10 |
|
| 11 | +from commercetools.version import __version__ |
13 | 12 | from commercetools.constants import HEADER_CORRELATION_ID |
14 | 13 | from commercetools.exceptions import CommercetoolsError |
15 | 14 | from commercetools.helpers import _concurrent_retry |
16 | | -from commercetools.protocols import Model |
17 | 15 | from commercetools.services import ServicesMixin |
18 | 16 | from commercetools.utils import BaseTokenSaver, DefaultTokenSaver, fix_token_url |
19 | 17 |
|
@@ -90,6 +88,7 @@ def __init__( |
90 | 88 | }, |
91 | 89 | token_updater=self._save_token, |
92 | 90 | ) |
| 91 | + self._http_client.headers.update({'User-Agent': self._get_user_agent()}) |
93 | 92 |
|
94 | 93 | if not http_adapter: |
95 | 94 | # Register retry handling for Connection errors and 502, 503, 504. |
@@ -223,6 +222,12 @@ def _read_env_vars(self, config: dict) -> dict: |
223 | 222 |
|
224 | 223 | return config |
225 | 224 |
|
| 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 | + |
226 | 231 |
|
227 | 232 | class Client(BaseClient, ServicesMixin): |
228 | 233 | def __init__(self, *args, **kwargs): |
|
0 commit comments