HumanSignal / label-studio-sdk

Label Studio SDK
https://api.labelstud.io
Apache License 2.0
98 stars 61 forks source link

client.projects.exports.download returns None #312

Open Duoquote opened 1 month ago

Duoquote commented 1 month ago

I have the following code:

from label_studio_sdk import ExportCreate, ExportConvert
from label_studio_sdk.client import LabelStudio

LABEL_STUDIO_URL = '...'
API_KEY = '...'
PROJECT_ID = 1

ls = LabelStudio(base_url=LABEL_STUDIO_URL, api_key=API_KEY)

export_task = ls.projects.exports.create(
    id=PROJECT_ID,
    request=ExportCreate()
)

convert_task = ls.projects.exports.convert(
    id=PROJECT_ID,
    export_pk=export_task.id,
    request=ExportConvert(
        export_type="YOLO"
    )
)

data = ls.projects.exports.download(id=PROJECT_ID, export_pk=export_task.id, export_type="YOLO")

And the value of data is None, I am testing it on notebook so I am sure the task is in completed state.

chewwt commented 1 month ago

Hi, I have the same problem too.

I think it is because of the following lines in the download function: https://github.com/HumanSignal/label-studio-sdk/blob/10ca9af14ecab53c4de553ba97c7a135da2d36f9/src/label_studio_sdk/projects/exports/client.py#L517-L518 The function should be returning the successful response instead.

My current workaround is to make the download request via the http client directly:

resp = ls._client_wrapper.httpx_client.request(
    f"/api/projects/{PROJECT_ID}/exports/{export_task.id}/download",
    method="GET",
    params={"exportType": "YOLO"},
)