Skip to content

Commit 024a45a

Browse files
committed
Fix upload_images_from_folder parser
1 parent 6f8df8c commit 024a45a

File tree

1 file changed

+51
-3
lines changed

1 file changed

+51
-3
lines changed

superannotate/mixp/utils/parsers.py

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,15 +1047,63 @@ def upload_images_from_folder_to_project(*args, **kwargs):
10471047
folder_path = kwargs.get("folder_path", None)
10481048
if not folder_path:
10491049
folder_path = args[1]
1050-
from ...common import DEFAULT_IMAGE_EXTENSIONS as extension
1050+
1051+
recursive_subfolders = kwargs.get("recursive_subfolders", None)
1052+
if not recursive_subfolders:
1053+
recursive_subfolders = args[6:7]
1054+
if recursive_subfolders:
1055+
recursive_subfolders = recursive_subfolders[0]
1056+
else:
1057+
recursive_subfolders = False
1058+
1059+
from ...common import DEFAULT_IMAGE_EXTENSIONS
1060+
extensions = DEFAULT_IMAGE_EXTENSIONS
1061+
extensions = kwargs.get("extensions", None)
1062+
if not extensions:
1063+
extensions = args[2:3]
1064+
if extensions:
1065+
extensions = extensions[0]
1066+
else:
1067+
extensions = DEFAULT_IMAGE_EXTENSIONS
1068+
1069+
from ...common import DEFAULT_FILE_EXCLUDE_PATTERNS
1070+
exclude_file_patterns = DEFAULT_FILE_EXCLUDE_PATTERNS
1071+
exclude_file_patterns = kwargs.get("exclude_file_patterns", None)
1072+
if not exclude_file_patterns:
1073+
exclude_file_patterns = args[5:6]
1074+
if exclude_file_patterns:
1075+
exclude_file_patterns = exclude_file_patterns[0]
1076+
else:
1077+
exclude_file_patterns = DEFAULT_FILE_EXCLUDE_PATTERNS
1078+
10511079
from pathlib import Path
1052-
glob_iterator = Path(folder_path).glob(f'*.{extension}')
1080+
import os
1081+
1082+
paths = []
1083+
for extension in extensions:
1084+
if not recursive_subfolders:
1085+
paths += list(Path(folder_path).glob(f'*.{extension.lower()}'))
1086+
if os.name != "nt":
1087+
paths += list(Path(folder_path).glob(f'*.{extension.upper()}'))
1088+
else:
1089+
paths += list(Path(folder_path).rglob(f'*.{extension.lower()}'))
1090+
if os.name != "nt":
1091+
paths += list(Path(folder_path).rglob(f'*.{extension.upper()}'))
1092+
1093+
filtered_paths = []
1094+
for path in paths:
1095+
not_in_exclude_list = [
1096+
x not in Path(path).name for x in exclude_file_patterns
1097+
]
1098+
if all(not_in_exclude_list):
1099+
filtered_paths.append(path)
1100+
10531101
return {
10541102
"event_name": "upload_images_from_folder_to_project",
10551103
"properties":
10561104
{
10571105
"Image Count":
1058-
sum(1 for _ in glob_iterator),
1106+
len(filtered_paths),
10591107
"Custom Extentions":
10601108
bool(args[2:3] or kwargs.get("extensions", None)),
10611109
"Annotation Status":

0 commit comments

Comments
 (0)