From 1e0a5e0804bd574ed123bb05a2aba3ef6892e039 Mon Sep 17 00:00:00 2001 From: Val Brodsky Date: Mon, 29 Jul 2024 12:52:32 -0700 Subject: [PATCH] Add Project get_labeling_service_status() --- libs/labelbox/src/labelbox/schema/project.py | 19 +++++++++++++++++-- .../integration/test_labeling_service.py | 5 +++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/libs/labelbox/src/labelbox/schema/project.py b/libs/labelbox/src/labelbox/schema/project.py index 62cf6b282..761d0e391 100644 --- a/libs/labelbox/src/labelbox/schema/project.py +++ b/libs/labelbox/src/labelbox/schema/project.py @@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Tuple, TypeVar, Union, overload from urllib.parse import urlparse -from labelbox.schema.labeling_service import LabelingService +from labelbox.schema.labeling_service import LabelingService, LabelingServiceStatus import requests from labelbox import parser @@ -1920,10 +1920,25 @@ def clone(self) -> "Project": def get_labeling_service(self) -> LabelingService: """Get the labeling service for this project. + Raises: + ResourceNotFoundError if the project does not have a labeling service. + Returns: LabelingService: The labeling service for this project. """ - return LabelingService.get(self.client, self.uid) # type: ignore + return LabelingService.get(self.client, self.uid) + + @experimental + def get_labeling_service_status(self) -> LabelingServiceStatus: + """Get the labeling service status for this project. + + Raises: + ResourceNotFoundError if the project does not have a labeling service. + + Returns: + LabelingServiceStatus: The labeling service status for this project. + """ + return self.get_labeling_service().status @experimental def request_labeling_service(self) -> LabelingService: diff --git a/libs/labelbox/tests/integration/test_labeling_service.py b/libs/labelbox/tests/integration/test_labeling_service.py index ff3b065a8..ccfd0b15c 100644 --- a/libs/labelbox/tests/integration/test_labeling_service.py +++ b/libs/labelbox/tests/integration/test_labeling_service.py @@ -7,6 +7,8 @@ def test_get_labeling_service_throws_exception(project): with pytest.raises(ResourceNotFoundError): # No labeling service by default project.get_labeling_service() + with pytest.raises(ResourceNotFoundError): # No labeling service by default + project.get_labeling_service_status() def test_start_labeling_service(project): @@ -18,3 +20,6 @@ def test_start_labeling_service(project): labeling_service = project.get_labeling_service() assert labeling_service.status == LabelingServiceStatus.SetUp assert labeling_service.project_id == project.uid + + labeling_service_status = project.get_labeling_service_status() + assert labeling_service_status == LabelingServiceStatus.SetUp