Skip to content

Commit 09ec2fa

Browse files
committed
Merge branch 're-design-sdk' of https://github.com/superannotateai/superannotate-python-sdk into re-design-sdk
2 parents c6deb8f + 2e823e5 commit 09ec2fa

File tree

5 files changed

+32
-23
lines changed

5 files changed

+32
-23
lines changed

src/superannotate/lib/core/usecases.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,6 @@ def validate_project_type(self):
348348

349349
def execute(self):
350350
if self.is_valid():
351-
self._project_to_create.description = self._project.description
352351
project = self._projects.insert(self._project_to_create)
353352

354353
annotation_classes_mapping = {}
@@ -677,17 +676,13 @@ def upload_state_code(self) -> int:
677676
return constances.UploadState.BASIC.value
678677

679678
def execute(self):
680-
duplications = self._backend_service.get_bulk_images(
679+
response = self._backend_service.get_bulk_images(
681680
project_id=self._project.uuid,
682681
team_id=self._project.team_id,
683682
folder_id=self._folder.uuid,
684683
images=[image.name for image in self._attachments],
685684
)
686-
try:
687-
duplications = [image["name"] for image in duplications]
688-
except Exception:
689-
print(duplications)
690-
raise
685+
duplications = [image["name"] for image in response]
691686
meta = {}
692687
to_upload = []
693688
for image in self._attachments:
@@ -4511,25 +4506,25 @@ def __init__(
45114506
def execute(self) -> Response:
45124507

45134508
if self._folder.name == "root" and not self._image_names:
4514-
poll_id = self._backend_service.delete_image_annotations(
4509+
response = self._backend_service.delete_image_annotations(
45154510
project_id=self._project.uuid, team_id=self._project.team_id,
45164511
)
45174512
else:
4518-
poll_id = self._backend_service.delete_image_annotations(
4513+
response = self._backend_service.delete_image_annotations(
45194514
project_id=self._project.uuid,
45204515
team_id=self._project.team_id,
45214516
folder_id=self._folder.uuid,
45224517
image_names=self._image_names,
45234518
)
45244519

4525-
if poll_id:
4520+
if response:
45264521
timeout_start = time.time()
45274522
while time.time() < timeout_start + self.POLL_AWAIT_TIME:
45284523
progress = int(
45294524
self._backend_service.get_annotations_delete_progress(
45304525
project_id=self._project.uuid,
45314526
team_id=self._project.team_id,
4532-
poll_id=poll_id,
4527+
poll_id=response.get("poll_id"),
45334528
).get("process", -1)
45344529
)
45354530
if 0 < progress < 100:

src/superannotate/lib/infrastructure/controller.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,16 @@ def __init__(self, logger, config_path=constances.CONFIG_FILE_LOCATION):
5353
self.configs.insert(ConfigEntity("token", ""))
5454
logger.warning("Fill config.json")
5555
return
56+
verify_ssl_entity = self.configs.get_one("ssl_verify")
57+
if not verify_ssl_entity:
58+
verify_ssl = True
59+
else:
60+
verify_ssl = verify_ssl_entity.value
5661
self._backend_client = SuperannotateBackendService(
5762
api_url=self.configs.get_one("main_endpoint").value,
5863
auth_token=ConfigRepository().get_one("token").value,
5964
logger=logger,
65+
verify_ssl=verify_ssl
6066
)
6167
self._s3_upload_auth_data = None
6268
self._projects = None
@@ -337,7 +343,9 @@ def clone_project(
337343
project = self._get_project(from_name)
338344
project_to_create = copy.copy(project)
339345
project_to_create.name = name
340-
project_to_create.description = project_description
346+
if project_description:
347+
project_to_create.description = project_description
348+
341349
use_case = usecases.CloneProjectUseCase(
342350
project=project,
343351
project_to_create=project_to_create,

src/superannotate/lib/infrastructure/services.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os
12
from contextlib import contextmanager
23
from datetime import datetime
34
from typing import Dict
@@ -26,11 +27,12 @@ class BaseBackendService(SuerannotateServiceProvider):
2627
Base service class
2728
"""
2829

29-
def __init__(self, api_url: str, auth_token: str, logger, paginate_by=None):
30+
def __init__(self, api_url: str, auth_token: str, logger, paginate_by=None, verify_ssl=True):
3031
self.api_url = api_url
3132
self._auth_token = auth_token
3233
self.logger = logger
3334
self._paginate_by = paginate_by
35+
self._verify_ssl = verify_ssl
3436
self.team_id = auth_token.split("=")[-1]
3537

3638
@timed_lru_cache(seconds=360)
@@ -82,7 +84,7 @@ def _request(
8284
with self.safe_api():
8385
req = requests.Request(method=method, url=url, **kwargs, params=params)
8486
prepared = session.prepare_request(req)
85-
response = session.send(request=prepared)
87+
response = session.send(request=prepared, verify=self._verify_ssl)
8688
if response.status_code == 404 and retried < 3:
8789
return self._request(
8890
url,
@@ -966,7 +968,7 @@ def delete_image_annotations(
966968
delete_annotations_url, "post", params=params, data=data
967969
)
968970
if response.ok:
969-
return response.json()["poll_id"]
971+
return response.json()
970972

971973
def get_annotations_delete_progress(
972974
self, team_id: int, project_id: int, poll_id: int

tests/integration/test_annotation_delete.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88

99
class TestAnnotationDelete(BaseTestCase):
10-
PROJECT_NAME_ = "TestAnnotationDelete"
10+
PROJECT_NAME = "TestAnnotationDelete"
1111
PROJECT_DESCRIPTION = "desc"
1212
PROJECT_TYPE = "Vector"
1313
TEST_FOLDER_PATH = "data_set/sample_project_vector_single_image"

tests/integration/test_create_from_full_info.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,18 @@ def test_create_from_full_info(self):
9090
len(new_project_metadata["workflows"]), len(project_metadata["workflows"])
9191
)
9292

93-
def test_clone_contributors(self):
93+
def test_clone_contributors_and_description(self):
9494
team_users = sa.search_team_contributors()
9595
sa.share_project(self.PROJECT_NAME_1, team_users[0], "QA")
96-
first_project_contributors = sa.get_project_metadata(
96+
first_project_metadata = sa.get_project_metadata(
9797
self.PROJECT_NAME_1, include_contributors=True
98-
)["contributors"]
99-
sa.clone_project(self.PROJECT_NAME_2, self.PROJECT_NAME_1, copy_contributors=True)
100-
second_project_contributors = sa.get_project_metadata(
98+
)
99+
first_project_contributors = first_project_metadata["contributors"]
100+
sa.clone_project(self.PROJECT_NAME_2, self.PROJECT_NAME_1, "DESCRIPTION", copy_contributors=True)
101+
second_project_metadata = sa.get_project_metadata(
101102
self.PROJECT_NAME_2, include_contributors=True
102-
)["contributors"]
103-
self.assertEqual(first_project_contributors[0]["user_id"], second_project_contributors[0]["user_id"])
103+
)
104+
second_project_contributors = second_project_metadata["contributors"]
105+
106+
self.assertEqual(first_project_contributors[0]["user_id"], second_project_contributors[0]["user_id"])
107+
self.assertEqual("DESCRIPTION", second_project_metadata["description"])

0 commit comments

Comments
 (0)