Skip to content

Commit 21ba1ee

Browse files
committed
Better get folder metadata
1 parent 4648949 commit 21ba1ee

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

superannotate/db/images.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,13 +164,20 @@ def process_result(x):
164164

165165

166166
def get_folder_metadata(project, folder_name):
167-
folders = search_folders(project, folder_name, return_metadata=True)
168-
if len(folders) == 0:
169-
raise SABaseException(0, "Folder doesn't exist")
170-
elif len(folders) > 1:
171-
raise SABaseException(0, "Multiple folders with the same name")
172-
else:
173-
return folders[0]
167+
if not isinstance(project, dict):
168+
project = get_project_metadata_bare(project)
169+
team_id, project_id = project["team_id"], project["id"]
170+
params = {'team_id': team_id, 'project_id': project_id, 'name': folder_name}
171+
response = _api.send_request(
172+
req_type='GET', path='/folder/getFolderByName', params=params
173+
)
174+
if not response.ok:
175+
raise SABaseException(
176+
response.status_code,
177+
"Couldn't get folder metadata " + response.text
178+
)
179+
res = response.json()
180+
return res
174181

175182

176183
def search_folders(project, folder_name=None, return_metadata=False):

tests/test_folders.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from pathlib import Path
22
import json
3+
from superannotate.exceptions import SABaseException
34

45
import pytest
56

@@ -40,4 +41,12 @@ def test_basic_folders(tmpdir):
4041
assert folders[0] == "folder1"
4142

4243
images = sa.search_images(project, "example_image_1", folder="folder1")
43-
assert len(images) == 0
44+
assert len(images) == 0
45+
46+
folder = sa.get_folder_metadata(project, "folder1")
47+
assert isinstance(folder, dict)
48+
assert folder["name"] == "folder1"
49+
50+
with pytest.raises(SABaseException) as e:
51+
folder = sa.get_folder_metadata(project, "folder2")
52+
assert 'Folder not found' in str(e)

0 commit comments

Comments
 (0)