Skip to content

Commit e80ffdf

Browse files
committed
Fixed fodlers duplication
tod
1 parent fae81f9 commit e80ffdf

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

src/superannotate/lib/core/usecases/annotations.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,22 +1937,38 @@ async def run_workers(
19371937
)
19381938

19391939
def get_or_create_folder(self, folder_name: str) -> FolderEntity:
1940-
if folder_name is None:
1940+
"""
1941+
Retrieve an existing folder by name or create it if it doesn't exist.
1942+
1943+
Args:
1944+
folder_name (str): The name of the folder to retrieve or create.
1945+
1946+
Returns:
1947+
FolderEntity: The retrieved or newly created folder entity.
1948+
"""
1949+
if not folder_name:
19411950
return self._root_folder
1942-
response = self._service_provider.folders.get_by_name(
1943-
self._project, folder_name
1944-
)
1951+
1952+
response = self._service_provider.folders.get_by_name(self._project, folder_name)
1953+
if response.ok:
1954+
return response.data
1955+
1956+
# Handle non-404 errors
19451957
if response.status != 404:
19461958
response.raise_for_status()
1959+
1960+
# Create the folder if it doesn't exist
19471961
response = CreateFolderUseCase(
19481962
project=self._project,
19491963
folder=FolderEntity(name=folder_name),
19501964
service_provider=self._service_provider,
19511965
).execute()
1966+
19521967
if response.errors:
19531968
raise AppException(response.errors)
1954-
else:
1955-
return response.data
1969+
1970+
return response.data
1971+
19561972

19571973
def attach_items(
19581974
self, folder: FolderEntity, item_names: List[str]

tests/integration/annotations/test_upload_annotations.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def setUp(self, *args, **kwargs):
163163
],
164164
)
165165
project = sa.controller.get_project(self.PROJECT_NAME)
166-
time.sleep(2)
166+
time.sleep(4)
167167
with open(self.EDITOR_TEMPLATE_PATH) as f:
168168
res = sa.controller.service_provider.projects.attach_editor_template(
169169
sa.controller.team, project, template=json.load(f)
@@ -191,6 +191,10 @@ def test_upload_from_root_to_folder(self):
191191
assert len(response["succeeded"]) == 3
192192
annotations = sa.get_annotations(f"{self.PROJECT_NAME}/test_folder")
193193
assert all([len(i["instances"]) == 3 for i in annotations]) is True
194+
folders = sa.search_folders(self.PROJECT_NAME)
195+
assert len(folders) == 1
196+
sa.upload_annotations(self.PROJECT_NAME, annotations=data)
197+
assert len(folders) == 1
194198

195199
def test_error_upload_from_folder_to_folder_(self):
196200
with open(self.JSONL_ANNOTATIONS_PATH) as f:

0 commit comments

Comments
 (0)