Skip to content

Commit c0408b5

Browse files
committed
Special characters in projects
1 parent 1a51307 commit c0408b5

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

superannotate/db/project_api.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,14 @@ def create_folder(project, folder_name):
163163
if not isinstance(project, dict):
164164
project = get_project_metadata_bare(project)
165165
params = {"team_id": project["team_id"], "project_id": project["id"]}
166+
special_characters = set('/\\:*?"<>|')
167+
name_changed = False
168+
if len(set(folder_name).intersection(special_characters)) > 0:
169+
logger.warning(
170+
"New folder name has special characters. Special characters will be replaced by underscores."
171+
)
172+
name_changed = True
173+
166174
data = {"name": folder_name}
167175
response = _api.send_request(
168176
req_type='POST', path='/folder', params=params, json_req=data
@@ -172,7 +180,8 @@ def create_folder(project, folder_name):
172180
response.status_code, "Couldn't create project " + response.text
173181
)
174182
res = response.json()
175-
if res["name"] != folder_name:
183+
184+
if res["name"] != folder_name and not name_changed:
176185
logger.warning(
177186
"Created folder has name %s, since folder with name %s already existed.",
178187
res["name"], folder_name

superannotate/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "4.1.0b5"
1+
__version__ = "4.1.0b6"

tests/test_folders.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,3 +493,22 @@ def test_folder_image_annotation_status(tmpdir):
493493
for image in ["example_image_3.jpg", "example_image_3.jpg"]:
494494
metadata = sa.get_image_metadata(project, image)
495495
assert metadata["annotation_status"] == "InProgress"
496+
497+
498+
def test_folder_misnamed(tmpdir):
499+
PROJECT_NAME = "test folder misnamed"
500+
tmpdir = Path(tmpdir)
501+
502+
projects_found = sa.search_projects(PROJECT_NAME, return_metadata=True)
503+
for pr in projects_found:
504+
sa.delete_project(pr)
505+
506+
project = sa.create_project(PROJECT_NAME, 'test', 'Vector')
507+
sa.create_folder(project, "folder1")
508+
assert "folder1" in sa.search_folders(project)
509+
510+
sa.create_folder(project, "folder1")
511+
assert "folder1 (1)" in sa.search_folders(project)
512+
513+
sa.create_folder(project, "folder2\\")
514+
assert "folder2_" in sa.search_folders(project)

0 commit comments

Comments
 (0)