Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion src/dakera/async_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
import json
import random
from collections.abc import AsyncGenerator
from importlib.metadata import PackageNotFoundError
from importlib.metadata import version as _pkg_version
from typing import Any

try:
Expand Down Expand Up @@ -150,6 +152,14 @@
WarmingTargetTier,
)

# DAK-7617: default User-Agent so the engine can attribute Python SDK usage.
# Read from installed package metadata to avoid a circular import of ``dakera``
# (``__version__`` is defined after this module is imported in ``__init__``).
try:
_USER_AGENT = f"dakera-py/{_pkg_version('dakera')}"
except PackageNotFoundError: # pragma: no cover
_USER_AGENT = "dakera-py/unknown"


class AsyncDakeraClient:
"""
Expand Down Expand Up @@ -204,7 +214,10 @@ def __init__(
else:
self._retry_config = RetryConfig(max_retries=max_retries)

default_headers: dict[str, str] = {"Content-Type": "application/json"}
default_headers: dict[str, str] = {
"Content-Type": "application/json",
"User-Agent": _USER_AGENT,
}
if api_key:
default_headers["Authorization"] = f"Bearer {api_key}"
if headers:
Expand Down
14 changes: 13 additions & 1 deletion src/dakera/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import random
import time
from collections.abc import Generator
from importlib.metadata import PackageNotFoundError
from importlib.metadata import version as _pkg_version
from typing import Any, Union
from urllib.parse import urljoin

Expand Down Expand Up @@ -126,6 +128,14 @@
WarmingTargetTier,
)

# DAK-7617: default User-Agent so the engine can attribute Python SDK usage.
# Read from installed package metadata to avoid a circular import of ``dakera``
# (``__version__`` is defined after this module is imported in ``__init__``).
try:
_USER_AGENT = f"dakera-py/{_pkg_version('dakera')}"
except PackageNotFoundError: # pragma: no cover
_USER_AGENT = "dakera-py/unknown"


class DakeraClient:
"""
Expand Down Expand Up @@ -185,7 +195,9 @@ def __init__(
self._retry_config = RetryConfig(max_retries=max_retries)

self._session = requests.Session()
self._session.headers.update({"Content-Type": "application/json"})
self._session.headers.update(
{"Content-Type": "application/json", "User-Agent": _USER_AGENT}
)

if api_key:
self._session.headers.update({"Authorization": f"Bearer {api_key}"})
Expand Down
Loading