2424 get_annotation_classes_id_to_name , get_annotation_classes_name_to_id ,
2525 search_annotation_classes
2626)
27- from .folders import get_folder_metadata
28- from .project_api import get_project_metadata_bare
27+ from .project_api import get_project_project_folder_metadata
2928
3029logger = logging .getLogger ("superannotate-python-sdk" )
3130
@@ -36,8 +35,7 @@ def search_images(
3635 project ,
3736 image_name_prefix = None ,
3837 annotation_status = None ,
39- return_metadata = False ,
40- project_folder = None
38+ return_metadata = False
4139):
4240 """Search images by name_prefix (case-insensitive) and annotation status
4341
@@ -55,17 +53,14 @@ def search_images(
5553 :return: metadata of found images or image names
5654 :rtype: list of dicts or strs
5755 """
58- if not isinstance (project , dict ):
59- project = get_project_metadata_bare (project )
56+ project , project_folder = get_project_project_folder_metadata (project )
6057 team_id , project_id = project ["team_id" ], project ["id" ]
6158 if annotation_status is not None :
6259 annotation_status = common .annotation_status_str_to_int (
6360 annotation_status
6461 )
6562
6663 if project_folder is not None :
67- if not isinstance (project_folder , dict ):
68- project_folder = get_folder_metadata (project , project_folder )
6964 project_folder_id = project_folder ["id" ]
7065 else :
7166 project_folder_id = None
@@ -120,13 +115,7 @@ def process_result(x):
120115 return result_list
121116
122117
123- @project_metadata
124- def get_image_metadata (
125- project ,
126- image_names ,
127- return_dict_on_single_output = True ,
128- project_folder = None
129- ):
118+ def get_image_metadata (project , image_names , return_dict_on_single_output = True ):
130119 """Returns image metadata
131120
132121 :param project: project name or metadata of the project
@@ -137,12 +126,11 @@ def get_image_metadata(
137126 :return: metadata of image
138127 :rtype: dict
139128 """
129+ project , project_folder = get_project_project_folder_metadata (project )
140130 if isinstance (image_names , str ):
141131 image_names = [image_names ]
142132
143133 if project_folder is not None :
144- if not isinstance (project_folder , dict ):
145- project_folder = get_folder_metadata (project , project_folder )
146134 project_folder_id = project_folder ["id" ]
147135 else :
148136 project_folder_id = None
@@ -546,8 +534,7 @@ def download_image(
546534 0 , "Image download variant should be either original or lores"
547535 )
548536
549- if not isinstance (project , dict ):
550- project = get_project_metadata_bare (project )
537+ project , project_folder = get_project_project_folder_metadata (project )
551538 img = get_image_bytes (project , image_name , variant = variant )
552539 filepath_save = image_name
553540 if variant == "lores" :
@@ -665,7 +652,7 @@ def get_image_preannotations(project, image_name):
665652 return _get_image_pre_or_annotations (project , image_name , "pre" )
666653
667654
668- def get_image_annotations (project , image_name , project_folder = None ):
655+ def get_image_annotations (project , image_name ):
669656 """Get annotations of the image.
670657
671658 :param project: project name or metadata of the project
@@ -680,20 +667,16 @@ def get_image_annotations(project, image_name, project_folder=None):
680667 "annotation_mask_filename": mask filename on server
681668 :rtype: dict
682669 """
683- return _get_image_pre_or_annotations (
684- project , image_name , "" , None , project_folder
685- )
670+ return _get_image_pre_or_annotations (project , image_name , "" , None )
686671
687672
688- def _get_image_pre_or_annotations (
689- project , image_name , pre , project_type = None , project_folder = None
690- ):
691- image = get_image_metadata (project , image_name , True , project_folder )
673+ def _get_image_pre_or_annotations (project , image_name , pre , project_type = None ):
674+ image = get_image_metadata (project , image_name , True )
692675 team_id , project_id , image_id , project_folder_id = image ["team_id" ], image [
693676 "project_id" ], image ["id" ], image ['folder_id' ]
694677 if project_type is None :
695678 if not isinstance (project , dict ):
696- project = get_project_metadata_bare (project )
679+ project , _ = get_project_project_folder_metadata (project )
697680 project_type = project ["type" ]
698681 params = {
699682 'team_id' : team_id ,
@@ -790,11 +773,10 @@ def download_image_annotations(project, image_name, local_dir_path):
790773def _download_image_pre_or_annotations (
791774 project , image_name , local_dir_path , pre
792775):
793- if not isinstance (project , dict ):
794- project = get_project_metadata_bare (project )
776+ project , project_folder = get_project_project_folder_metadata (project )
795777
796778 annotation = _get_image_pre_or_annotations (
797- project , image_name , pre , project ["type" ]
779+ ( project , project_folder ) , image_name , pre , project ["type" ]
798780 )
799781
800782 if annotation [f"{ pre } annotation_json_filename" ] is None :
@@ -869,9 +851,8 @@ def upload_image_annotations(
869851 if verbose :
870852 logger .info ("Uploading annotations from %s." , annotation_json )
871853 annotation_json = json .load (open (annotation_json ))
872- if not isinstance (project , dict ):
873- project = get_project_metadata_bare (project )
874- image = get_image_metadata (project , image_name )
854+ project , project_folder = get_project_project_folder_metadata (project )
855+ image = get_image_metadata ((project , project_folder ), image_name )
875856 team_id , project_id , image_id , folder_id , image_name = image [
876857 "team_id" ], image ["project_id" ], image ["id" ], image ['folder_id' ], image [
877858 'name' ]
0 commit comments