Skip to content

Commit 696fe1f

Browse files
authored
Merge pull request #190 from superannotateai/fix_bulk
Fix bulk
2 parents 53a76e0 + 7907894 commit 696fe1f

File tree

4 files changed

+47
-11
lines changed

4 files changed

+47
-11
lines changed

src/superannotate/lib/app/interface/sdk_interface.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -619,9 +619,15 @@ def _upload_image(image_url, image_name=None) -> ProcessedImage:
619619
if not download_response.errors:
620620
content, content_name = download_response.data
621621
image_name = image_name if image_name else content_name
622-
if image_name not in controller.get_duplicated_images(
623-
project_name=project_name, folder_name=folder_name, images=[image_name]
624-
):
622+
duplicated_images = [
623+
image.name
624+
for image in controller.get_duplicated_images(
625+
project_name=project_name,
626+
folder_name=folder_name,
627+
images=[image_name],
628+
)
629+
]
630+
if image_name not in duplicated_images:
625631
upload_response = controller.upload_image_to_s3(
626632
project_name=project_name,
627633
image_path=image_name,
@@ -2876,6 +2882,9 @@ def run_segmentation(project, images_list, model):
28762882
model_name=model_name,
28772883
folder_name=folder_name,
28782884
)
2885+
if response.errors:
2886+
raise Exception(response.errors)
2887+
28792888
return response.data
28802889

28812890

src/superannotate/lib/core/entities.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from typing import Iterable
55
from typing import List
66

7+
from lib.core.enums import SegmentationStatus
8+
79

810
class BaseEntity(ABC):
911
def __init__(self, uuid: Any = None):
@@ -233,6 +235,8 @@ def __init__(
233235
entropy_value: int = None,
234236
approval_status: bool = None,
235237
is_pinned: bool = None,
238+
segmentation_status: int = SegmentationStatus.NOT_STARTED.value,
239+
prediction_status: int = SegmentationStatus.NOT_STARTED.value,
236240
meta: ImageInfoEntity = ImageInfoEntity(),
237241
):
238242
super().__init__(uuid)
@@ -250,6 +254,8 @@ def __init__(
250254
self.approval_status = approval_status
251255
self.annotator_name = annotator_name
252256
self.is_pinned = is_pinned
257+
self.segmentation_status = segmentation_status
258+
self.prediction_status = prediction_status
253259
self.meta = meta
254260

255261
def to_dict(self):
@@ -268,6 +274,8 @@ def to_dict(self):
268274
"annotator_id": self.annotator_id,
269275
"annotator_name": self.annotator_name,
270276
"is_pinned": self.is_pinned,
277+
"segmentation_status": self.segmentation_status,
278+
"prediction_status": self.prediction_status,
271279
"meta": self.meta.to_dict(),
272280
}
273281

src/superannotate/lib/core/usecases.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
from lib.core.serviceproviders import SuerannotateServiceProvider
5454
from PIL import UnidentifiedImageError
5555

56-
logger = logging.getLogger()
56+
logger = logging.getLogger("root")
5757

5858

5959
class BaseUseCase(ABC):
@@ -4528,7 +4528,7 @@ def execute(self) -> Response:
45284528
return self._response
45294529

45304530

4531-
class GetDuplicateImages(BaseUseCase):
4531+
class GetBulkImages(BaseUseCase):
45324532
def __init__(
45334533
self,
45344534
service: SuerannotateServiceProvider,
@@ -4546,13 +4546,32 @@ def __init__(
45464546
self._chunk_size = 500
45474547

45484548
def execute(self):
4549-
duplicates = []
4549+
res = []
45504550
for i in range(0, len(self._images), self._chunk_size):
4551-
duplications = self._service.get_bulk_images(
4551+
images = self._service.get_bulk_images(
45524552
project_id=self._project_id,
45534553
team_id=self._team_id,
45544554
folder_id=self._folder_id,
45554555
images=self._images[i : i + self._chunk_size],
45564556
)
4557-
duplicates += [image["name"] for image in duplications]
4558-
return duplicates
4557+
res += [
4558+
ImageEntity(
4559+
uuid=image["id"],
4560+
name=image["name"],
4561+
path=image["name"],
4562+
project_id=image["project_id"],
4563+
team_id=image["team_id"],
4564+
annotation_status_code=image["annotation_status"],
4565+
folder_id=image["folder_id"],
4566+
annotator_id=image["annotator_id"],
4567+
annotator_name=image["annotator_name"],
4568+
qa_id=image["qa_id"],
4569+
qa_name=image["qa_name"],
4570+
entropy_value=image["entropy_value"],
4571+
approval_status=image["approval_status"],
4572+
is_pinned=image["is_pinned"],
4573+
)
4574+
for image in images
4575+
]
4576+
self._response.data = res
4577+
return self._response

src/superannotate/lib/infrastructure/controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,11 +1478,11 @@ def get_duplicated_images(
14781478
):
14791479
project = self._get_project(project_name)
14801480
folder = self._get_folder(project, folder_name)
1481-
use_case = usecases.GetDuplicateImages(
1481+
use_case = usecases.GetBulkImages(
14821482
service=self._backend_client,
14831483
project_id=project.uuid,
14841484
team_id=project.team_id,
14851485
folder_id=folder.uuid,
14861486
images=images,
14871487
)
1488-
return use_case.execute()
1488+
return use_case.execute().data

0 commit comments

Comments
 (0)