Skip to content

Commit 4897403

Browse files
committed
merge with develop
2 parents 8e9f707 + 1f4a389 commit 4897403

File tree

9 files changed

+29
-18
lines changed

9 files changed

+29
-18
lines changed

docs/source/superannotate.sdk.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ _________________
126126
.. autofunction:: superannotate.get_team_metadata
127127
.. autofunction:: superannotate.invite_contributor_to_team
128128
.. autofunction:: superannotate.delete_contributor_to_team_invitation
129+
.. autofunction:: superannotate.search_team_contributors
129130

130131
----------
131132

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/lib/app/interface/sdk_interface.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,14 @@ def rename_project(project: str, new_name: str):
352352
:param new_name: project's new name
353353
:type new_name: str
354354
"""
355-
controller.update_project(name=project, project_data={"name": new_name})
355+
356+
response = controller.update_project(name=project, project_data={"name": new_name})
357+
if response.errors:
358+
raise AppException(response.errors)
359+
360+
logger.info(
361+
"Successfully renamed project %s to %s.", project, response.data["name"]
362+
)
356363

357364

358365
@Trackable

src/superannotate/lib/core/usecases.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,8 @@ def execute(self):
320320
if self.is_valid():
321321
for field, value in self._project_data.items():
322322
setattr(self._project, field, value)
323-
self._response.data = self._projects.update(self._project)
323+
new_project = self._projects.update(self._project)
324+
self._response.data = new_project.to_dict()
324325
return self._response
325326

326327

src/superannotate/lib/infrastructure/repositories.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,10 @@ def insert(self, entity: ProjectEntity) -> ProjectEntity:
9797

9898
def update(self, entity: ProjectEntity):
9999
condition = Condition("team_id", entity.team_id, EQ)
100-
self._service.update_project(
100+
result = self._service.update_project(
101101
entity.to_dict(), query_string=condition.build_query()
102102
)
103+
return self.dict2entity(result)
103104

104105
def delete(self, entity: ProjectEntity):
105106
team_id = entity.team_id
@@ -431,7 +432,7 @@ def get_one(self, uuid: int) -> MLModelEntity:
431432
raise NotImplementedError
432433

433434
def get_all(self, condition: Optional[Condition] = None) -> List[MLModelEntity]:
434-
models = self._service.search_models(condition.build_query())["data"]
435+
models = self._service.search_models(condition.build_query())
435436
return [self.dict2entity(model) for model in models]
436437

437438
def insert(self, entity: MLModelEntity) -> MLModelEntity:

src/superannotate/lib/infrastructure/services.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ def update_project(self, data: dict, query_string: str = None) -> bool:
270270
if query_string:
271271
url = f"{url}?{query_string}"
272272
res = self._request(url, "put", data)
273-
return res.ok
273+
return res.json()
274274

275275
def attach_files(
276276
self,
@@ -307,10 +307,7 @@ def get_folders(self, query_string: str = None, params: dict = None):
307307
get_folder_url = urljoin(self.api_url, self.URL_FOLDERS_IMAGES)
308308
if query_string:
309309
get_folder_url = f"{get_folder_url}?{query_string}"
310-
response = self._get_all_pages(
311-
get_folder_url, params=params, key_field="folders"
312-
)
313-
return response
310+
return self._get_all_pages(get_folder_url, params=params, key_field="folders")
314311

315312
def delete_folders(self, project_id: int, team_id: int, folder_ids: List[int]):
316313
delete_folders_url = urljoin(self.api_url, self.URL_DELETE_FOLDERS)
@@ -884,8 +881,8 @@ def search_models(self, query_string: str):
884881
search_model_url = urljoin(self.api_url, self.URL_MODELS)
885882
if query_string:
886883
search_model_url = f"{search_model_url}?{query_string}"
887-
response = self._request(search_model_url, "get",)
888-
return response.json()
884+
# response = self._request(search_model_url, "get",)
885+
return self._get_all_pages(search_model_url)
889886

890887
def bulk_get_folders(self, team_id: int, project_ids: List[int]):
891888
get_folders_url = urljoin(self.api_url, self.URL_BULK_GET_FOLDERS)
1 Byte
Loading

tests/integration/test_basic_images.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ def test_basic_images(self):
2828
sa.upload_images_from_folder_to_project(
2929
self.PROJECT_NAME, self.folder_path, annotation_status="InProgress"
3030
)
31+
sa.create_annotation_classes_from_classes_json(
32+
self.PROJECT_NAME, self.classes_json_path
33+
)
34+
3135
sa.upload_image_annotations(
3236
project=self.PROJECT_NAME,
3337
image_name=self.EXAMPLE_IMAGE_1,
3438
annotation_json=f"{self.folder_path}/{self.EXAMPLE_IMAGE_1}___pixel.json",
3539
)
36-
sa.create_annotation_classes_from_classes_json(
37-
self.PROJECT_NAME, self.classes_json_path
38-
)
39-
4040
downloaded = sa.download_image(
4141
project=self.PROJECT_NAME,
4242
image_name=self.EXAMPLE_IMAGE_1,

tests/integration/test_project_rename.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ class TestProjectRename(BaseTestCase):
77
PROJECT_DESCRIPTION = "Desc"
88
PROJECT_TYPE = "Vector"
99
NEW_PROJECT_NAME = "new"
10+
REPLACED_PROJECT_NAME = "_ _ _ _ _ _ _ _ _"
11+
BAD_PROJECT_NAME = '/ \ : * ? " < > |'
1012

1113
def test_project_rename(self):
1214
sa.rename_project(self.PROJECT_NAME, self.NEW_PROJECT_NAME)
1315
meta = sa.get_project_metadata(self.NEW_PROJECT_NAME)
1416
assert meta["name"] == self.NEW_PROJECT_NAME
17+
sa.delete_project(self.NEW_PROJECT_NAME)
1518

1619
def test_rename_with_special_characters(self):
17-
sa.rename_project(self.PROJECT_NAME, '/ \ : * ? " < > |')
18-
sa.get_project_metadata("_ _ _ _ _ _ _ _ _")
20+
sa.rename_project(self.PROJECT_NAME, self.BAD_PROJECT_NAME)
21+
sa.get_project_metadata(self.REPLACED_PROJECT_NAME)
22+
sa.delete_project(self.REPLACED_PROJECT_NAME)
1923

0 commit comments

Comments
 (0)