Skip to content

Commit fd8e2e1

Browse files
committed
Merge branch 're-design-sdk' of https://github.com/superannotateai/superannotate-python-sdk into re-design-sdk
2 parents 74163a0 + df756dc commit fd8e2e1

File tree

7 files changed

+27
-16
lines changed

7 files changed

+27
-16
lines changed

pytest.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
minversion = 3.0
33
log_cli=true
44
python_files = test_*.py
5-
addopts = -n32 --dist=loadscope
5+
;addopts = -n32 --dist=loadscope

src/superannotate/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
import logging.config
32

43
from superannotate.lib.app.analytics.class_analytics import attribute_distribution
@@ -289,6 +288,7 @@
289288

290289
__author__ = "Superannotate"
291290
import os
291+
292292
file_dir = os.path.split(os.path.realpath(__file__))[0]
293293

294294
logging.config.fileConfig(os.path.join(file_dir, "logging.conf"))

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2697,11 +2697,11 @@ def stop_model_training(model):
26972697

26982698
model_id = None
26992699
if isinstance(model, dict):
2700-
model_id = model['id']
2700+
model_id = model["id"]
27012701
else:
27022702
res = controller.search_models(name=model).data
27032703
if len(res):
2704-
model_id = res[0]['id']
2704+
model_id = res[0]["id"]
27052705
else:
27062706
raise AppException("Model not found.")
27072707

@@ -3533,4 +3533,4 @@ def aggregate_annotations_as_df(
35333533
include_tags,
35343534
verbose,
35353535
folder_names,
3536-
)
3536+
)

src/superannotate/lib/core/serviceproviders.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,4 +287,4 @@ def run_segmentation(
287287
def run_prediction(
288288
self, team_id: int, project_id: int, ml_model_id: int, image_ids: list
289289
):
290-
raise NotImplementedError
290+
raise NotImplementedError

src/superannotate/lib/core/usecases.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4159,7 +4159,7 @@ def s3_repository(self):
41594159
return self._s3_repo_instance
41604160

41614161
def _upload_image(self, image_path: str):
4162-
ProcessedImage = namedtuple("ProcessedImage", ["uploaded", "path", "entity"])
4162+
ProcessedImage = namedtuple("ProcessedImage", ["uploaded", "path", "entity", "name"])
41634163
if self._from_s3_bucket:
41644164
image_bytes = (
41654165
GetS3ImageUseCase(s3_bucket=self._from_s3_bucket, image_path=image_path)
@@ -4180,9 +4180,9 @@ def _upload_image(self, image_path: str):
41804180

41814181
if not upload_response.errors and upload_response.data:
41824182
entity = upload_response.data
4183-
return ProcessedImage(uploaded=True, path=entity.path, entity=entity)
4183+
return ProcessedImage(uploaded=True, path=entity.path, entity=entity, name=Path(image_path).name)
41844184
else:
4185-
return ProcessedImage(uploaded=False, path=image_path, entity=None)
4185+
return ProcessedImage(uploaded=False, path=image_path, entity=None, name=Path(image_path).name)
41864186

41874187
@property
41884188
def paths(self):
@@ -4280,7 +4280,7 @@ def execute(self):
42804280
if processed_image.uploaded and processed_image.entity:
42814281
uploaded_images.append(processed_image)
42824282
else:
4283-
failed_images.append(processed_image)
4283+
failed_images.append(processed_image.path)
42844284
yield
42854285

42864286
uploaded = []
@@ -4296,6 +4296,7 @@ def execute(self):
42964296

42974297
attachments, duplications = response.data
42984298
uploaded.extend(attachments)
4299-
# duplicates.extend(duplications)
4299+
uploaded = [image["name"] for image in uploaded]
4300+
failed_images = [image.name for image in failed_images]
43004301

4301-
self.response.data = uploaded, failed_images, duplications
4302+
self._response.data = uploaded, failed_images, duplications

src/superannotate/lib/infrastructure/services.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
from typing import Tuple
77
from urllib.parse import urljoin
88

9-
import requests
10-
from requests.packages.urllib3.exceptions import InsecureRequestWarning
119
import lib.core as constance
10+
import requests
1211
from lib.core.exceptions import AppException
1312
from lib.core.serviceproviders import SuerannotateServiceProvider
1413
from requests.exceptions import HTTPError
14+
import requests.packages.urllib3
1515

1616
requests.packages.urllib3.disable_warnings()
1717

@@ -74,7 +74,12 @@ def _request(
7474
method = getattr(requests, method)
7575
with self.safe_api():
7676
response = method(
77-
url, **kwargs, headers=headers_dict, params=params, timeout=60, verify=False
77+
url,
78+
**kwargs,
79+
headers=headers_dict,
80+
params=params,
81+
timeout=60,
82+
verify=False,
7883
)
7984
if response.status_code == 404 and retried < 3:
8085
return self._request(

tests/integration/test_interface.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import os
2+
from os.path import dirname
13
import src.superannotate as sa
24
from tests.integration.base import BaseTestCase
35

@@ -7,11 +9,14 @@ class TestInterface(BaseTestCase):
79
TEST_FOLDER_PATH = "data_set/sample_project_vector"
810
PROJECT_DESCRIPTION = "desc"
911
PROJECT_TYPE = "Vector"
12+
@property
13+
def folder_path(self):
14+
return os.path.join(dirname(dirname(__file__)), self.TEST_FOLDER_PATH)
1015

1116
def test_get_project_default_image_quality_in_editor(self):
1217
sa.invite_contributor_to_team(2, 2)
1318
self.assertIsNotNone(sa.get_project_default_image_quality_in_editor(self.PROJECT_NAME))
1419

1520
def test_get_project_metadata(self):
16-
metadata = sa.get_project_metadata(include_complete_image_count=True)
21+
metadata = sa.upload_images_from_folder_to_project(self.PROJECT_NAME, self.folder_path)
1722
pass

0 commit comments

Comments
 (0)