Skip to content

Commit 0f88447

Browse files
committed
Fix 50k
1 parent 84dda85 commit 0f88447

File tree

4 files changed

+59
-6
lines changed

4 files changed

+59
-6
lines changed

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -608,9 +608,11 @@ def upload_images_from_public_urls_to_project(
608608
raise AppException("Not all image URLs have corresponding names.")
609609

610610
project_name, folder_name = extract_project_folder(project)
611-
existing_images = controller.search_images(
612-
project_name=project_name, folder_path=folder_name
613-
).data
611+
existing_images = controller.get_duplicated_images(
612+
project_name=project_name,
613+
folder_name=folder_name,
614+
images=img_names,
615+
)
614616

615617
image_name_url_map = {}
616618
duplicate_images = []
@@ -1724,7 +1726,7 @@ def upload_images_from_s3_bucket_to_project(
17241726
:type image_quality_in_editor: str
17251727
"""
17261728
project_name, folder_name = extract_project_folder(project)
1727-
controller.backend_upload_from_s3(
1729+
response = controller.backend_upload_from_s3(
17281730
project_name=project_name,
17291731
folder_name=folder_name,
17301732
folder_path=folder_path,
@@ -1733,6 +1735,8 @@ def upload_images_from_s3_bucket_to_project(
17331735
bucket_name=bucket_name,
17341736
image_quality=image_quality_in_editor,
17351737
)
1738+
if response.errors:
1739+
raise AppException(response.errors)
17361740

17371741

17381742
@Trackable

src/superannotate/lib/core/usecases.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2429,7 +2429,7 @@ def execute(self):
24292429
else:
24302430
raise AppException("Cant find settings.")
24312431

2432-
in_progress = self._backend_service.upload_form_s3(
2432+
response = self._backend_service.upload_form_s3(
24332433
project_id=self._project.uuid,
24342434
team_id=self._project.team_id,
24352435
access_key=self._access_key,
@@ -2438,6 +2438,11 @@ def execute(self):
24382438
from_folder_name=self._folder_path,
24392439
to_folder_id=self._folder.uuid,
24402440
)
2441+
2442+
if not response.ok:
2443+
self._response.errors = AppException(response.json()['error'])
2444+
2445+
in_progress = response.ok
24412446
if in_progress:
24422447
while True:
24432448
time.sleep(4)
@@ -4479,3 +4484,34 @@ def execute(self):
44794484

44804485
self._response.data = uploaded, failed_images, duplications
44814486
return self._response
4487+
4488+
4489+
4490+
class GetDuplicateImages(BaseUseCase):
4491+
def __init__(self,
4492+
service: SuerannotateServiceProvider,
4493+
project_id :int,
4494+
team_id: int,
4495+
folder_id: int,
4496+
images: List[str]
4497+
):
4498+
super().__init__()
4499+
self._service = service
4500+
self._project_id = project_id
4501+
self._team_id = team_id
4502+
self._folder_id = folder_id
4503+
self._images = images
4504+
self._chunk_size = 500
4505+
4506+
def execute(self):
4507+
duplicates = []
4508+
for i in range(0, len(self._images), self._chunk_size):
4509+
duplications = self._service.get_bulk_images(
4510+
project_id=self._project_id,
4511+
team_id=self._team_id,
4512+
folder_id=self._folder_id,
4513+
images=self._images[i: i + self._chunk_size],
4514+
)
4515+
duplicates += [image["name"] for image in duplications]
4516+
return duplicates
4517+

src/superannotate/lib/infrastructure/controller.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,3 +1425,16 @@ def search_models(
14251425
ml_models_repo=ml_models_repo, condition=condition
14261426
)
14271427
return use_case.execute()
1428+
1429+
1430+
def get_duplicated_images(self,project_name: str ,folder_name :str ,images: List[str]):
1431+
project = self._get_project(project_name)
1432+
folder = self._get_folder(project, folder_name)
1433+
use_case = usecases.GetDuplicateImages(
1434+
service=self._backend_client,
1435+
project_id=project.uuid,
1436+
team_id= project.team_id,
1437+
folder_id= folder.uuid,
1438+
images=images
1439+
)
1440+
return use_case.execute()

src/superannotate/lib/infrastructure/services.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,7 @@ def upload_form_s3(
752752
"folder_id": to_folder_id,
753753
},
754754
)
755-
return response.ok
755+
return response
756756

757757
def get_upload_status(self, project_id: int, team_id: int, folder_id: int):
758758
get_upload_status_url = urljoin(

0 commit comments

Comments
 (0)