2525 search_annotation_classes
2626)
2727from .project_api import get_project_and_folder_metadata , get_project_metadata_bare
28+ from .utils import _get_boto_session_by_credentials
2829
2930logger = logging .getLogger ("superannotate-python-sdk" )
3031
@@ -38,16 +39,17 @@ def get_project_root_folder_id(project):
3839 int
3940 Root folder ID
4041 """
41- params = {'team_id' : project ['team_id' ]}
42- response = _api .send_request (
43- req_type = 'GET' , path = f'/project/{ project ["id" ]} ' , params = params
44- )
42+ params = {
43+ 'team_id' : project ['team_id' ],
44+ 'project_id' : project ['id' ],
45+ 'is_root' : 1
46+ }
47+ response = _api .send_request (req_type = 'GET' , path = '/folders' , params = params )
4548 if not response .ok :
4649 raise SABaseException (response .status_code , response .text )
4750
4851 response = response .json ()
49-
50- return response ['folder_id' ]
52+ return response ['data' ][0 ]['id' ]
5153
5254
5355def search_images (
@@ -232,7 +234,10 @@ def get_image_metadata(project, image_names, return_dict_on_single_output=True):
232234 project_folder_id = None
233235
234236 chunk_size = 500
235- chunks = [image_names [i :i + chunk_size ] for i in range (0 , len (image_names ), chunk_size )]
237+ chunks = [
238+ image_names [i :i + chunk_size ]
239+ for i in range (0 , len (image_names ), chunk_size )
240+ ]
236241
237242 json_req = {
238243 'project_id' : project ['id' ],
@@ -249,13 +254,16 @@ def get_image_metadata(project, image_names, return_dict_on_single_output=True):
249254 req_type = 'POST' ,
250255 path = '/images/getBulk' ,
251256 json_req = json_req ,
252- )
257+ )
253258 if not response .ok :
254- raise SABaseException (response .status_code ,"Couldn't get image metadata. " + response .text )
259+ raise SABaseException (
260+ response .status_code ,
261+ "Couldn't get image metadata. " + response .text
262+ )
255263 metadata_raw += response .json ()
256264
257265 metadata_without_deleted = []
258- metadata_without_deleted = [ i for i in metadata_raw if i ['delete' ] != 1 ]
266+ metadata_without_deleted = [i for i in metadata_raw if i ['delete' ] != 1 ]
259267
260268 if len (metadata_without_deleted ) == 0 :
261269 raise SABaseException (
@@ -1001,11 +1009,7 @@ def upload_image_annotations(
10011009 )
10021010 res = response .json ()
10031011 res_json = res ['annotation_json_path' ]
1004- s3_session = boto3 .Session (
1005- aws_access_key_id = res_json ['accessKeyId' ],
1006- aws_secret_access_key = res_json ['secretAccessKey' ],
1007- aws_session_token = res_json ['sessionToken' ]
1008- )
1012+ s3_session = _get_boto_session_by_credentials (res_json )
10091013 s3_resource = s3_session .resource ('s3' )
10101014 bucket = s3_resource .Bucket (res_json ["bucket" ])
10111015 bucket .put_object (
@@ -1018,11 +1022,7 @@ def upload_image_annotations(
10181022 with open (mask , "rb" ) as f :
10191023 mask = io .BytesIO (f .read ())
10201024 res_mask = res ['annotation_bluemap_path' ]
1021- s3_session = boto3 .Session (
1022- aws_access_key_id = res_mask ['accessKeyId' ],
1023- aws_secret_access_key = res_mask ['secretAccessKey' ],
1024- aws_session_token = res_mask ['sessionToken' ]
1025- )
1025+ s3_session = _get_boto_session_by_credentials (res_mask )
10261026 bucket = s3_resource .Bucket (res_mask ["bucket" ])
10271027 bucket .put_object (Key = res_mask ['filePath' ], Body = mask )
10281028
0 commit comments