@@ -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