From 8b060ff97764c95374988e8ec7c00028e4765086 Mon Sep 17 00:00:00 2001 From: MarketDataApp Date: Wed, 21 Jan 2026 15:34:57 -0300 Subject: [PATCH] Fix user agent string to be RFC 7231 compliant Changed user agent format from 'marketdata-sdk-py-{version}' to 'marketdata-sdk-py/{version}' to comply with RFC 7231 specification which requires product/version format. - Updated _get_user_agent() method in client.py - Updated corresponding tests in test_client.py - Updated README.md documentation --- README.md | 2 +- src/marketdata/client.py | 2 +- src/tests/test_client.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bb0c535..bf747f7 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ client = MarketDataClient(token="your_token_here", logger=custom_logger) **Client Initialization Details:** - The client automatically fetches rate limits by making a request to `/user/` endpoint during initialization -- The client includes a User-Agent header with the format `marketdata-sdk-py-{version}` (e.g., `marketdata-sdk-py-1.1.0`) +- The client includes a User-Agent header with the format `marketdata-sdk-py/{version}` (e.g., `marketdata-sdk-py/1.1.0`) in RFC 7231 compliant format - The library version is automatically detected from the installed package - All requests include an `Authorization: Bearer {token}` header - The client uses `httpx.Client` for HTTP requests with automatic connection pooling diff --git a/src/marketdata/client.py b/src/marketdata/client.py index d20c840..80cd052 100644 --- a/src/marketdata/client.py +++ b/src/marketdata/client.py @@ -54,7 +54,7 @@ def __del__(self): self.client.close() def _get_user_agent(self) -> str: - return f"marketdata-sdk-py-{self.library_version}" + return f"marketdata-sdk-py/{self.library_version}" def _get_headers(self) -> dict[str, str]: headers = { diff --git a/src/tests/test_client.py b/src/tests/test_client.py index ab72082..e92990d 100644 --- a/src/tests/test_client.py +++ b/src/tests/test_client.py @@ -46,7 +46,7 @@ def test_user_rate_limits_str(): def test_client_user_agent(client): - assert client._get_user_agent() == f"marketdata-sdk-py-{client.library_version}" + assert client._get_user_agent() == f"marketdata-sdk-py/{client.library_version}" def test_client_headers(client): @@ -156,7 +156,7 @@ def test_validate_user_universal_params__function_json(monkeypatch): def test_client_get_user_agent(client): - assert client._get_user_agent() == f"marketdata-sdk-py-{client.library_version}" + assert client._get_user_agent() == f"marketdata-sdk-py/{client.library_version}" def test_client_get_headers(client):