Skip to content

Commit 7e1c28b

Browse files
committed
include client_version in job requests, rename field from assign to client
1 parent c5f4125 commit 7e1c28b

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/bma_client_lib/bma_client.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
import httpx
1515
import magic
1616
from PIL import Image, ImageOps
17+
from importlib.metadata import PackageNotFoundError
18+
from importlib.metadata import version
19+
1720

1821
logger = logging.getLogger("bma_client")
1922

@@ -27,6 +30,12 @@
2730
# maybe these should come from server settings
2831
SKIP_EXIF_TAGS = ["JPEGThumbnail", "TIFFThumbnail", "Filename"]
2932

33+
# get version
34+
try:
35+
__version__ = version("bma-client-lib")
36+
except PackageNotFoundError:
37+
__version__ = "0.0.0"
38+
3039

3140
class BmaBearerAuth(httpx.Auth):
3241
"""An httpx.Auth subclass to add Bearer token to requests."""
@@ -62,6 +71,7 @@ def __init__(
6271
self.path = path
6372
self.skip_exif_tags = SKIP_EXIF_TAGS
6473
self.get_server_settings()
74+
self.__version__ = __version__
6575

6676
def update_access_token(self) -> None:
6777
"""Set or update self.access_token using self.refresh_token."""
@@ -119,7 +129,10 @@ def get_job_assignment(self, file_uuid: uuid.UUID | None = None) -> list[dict[st
119129
url = self.base_url + "/api/v1/json/jobs/assign/"
120130
if file_uuid:
121131
url += f"?file_uuid={file_uuid}"
122-
data = {"client_uuid": self.uuid}
132+
data = {
133+
"client_uuid": self.uuid,
134+
"client_version": "bma-client-lib {__version__}",
135+
}
123136
try:
124137
r = self.client.post(url, json=data).raise_for_status()
125138
response = r.json()["bma_response"]
@@ -277,11 +290,12 @@ def upload_job_result(self, job_uuid: uuid.UUID, buf: "BytesIO", filename: str)
277290
# build metadata
278291
data = {
279292
"client_uuid": self.uuid,
293+
"client_version": "bma-client-lib {__version__}",
280294
}
281295
# doit
282296
r = self.client.post(
283297
self.base_url + f"/api/v1/json/jobs/{job_uuid}/result/",
284-
data={"assign": json.dumps(data)},
298+
data={"client": json.dumps(data)},
285299
files=files,
286300
).raise_for_status()
287301
t = time.time() - start

0 commit comments

Comments
 (0)