2121)
2222from .teams import get_team_metadata
2323from ..mixp .decorators import Trackable
24- from .utils import _assign_images , _get_upload_auth_token , _get_boto_session_by_credentials , upload_image_array_to_s3 , \
24+ from .utils import _unassign_images , _assign_images , _get_upload_auth_token , _get_boto_session_by_credentials , upload_image_array_to_s3 , \
2525 get_image_array_to_upload , __create_image , __copy_images , __move_images , get_project_folder_string
2626
2727logger = logging .getLogger ("superannotate-python-sdk" )
@@ -566,18 +566,18 @@ def assign_images(project, image_names, user):
566566 :param user: user email
567567 :type user: str
568568 """
569- logger .info ("Assign %s images to user %s" , len (image_names ), user )
570569 if len (image_names ) == 0 :
571570 return
572571
573572 project , folder = get_project_and_folder_metadata (project )
574-
575- verified_users = get_team_metadata ()[ "users " ]
576- verified_users = [i ['id ' ] for i in verified_users ]
573+ project_meta = get_project_metadata ( project , include_contributors = True )
574+ verified_users = project_meta [ "contributors " ]
575+ verified_users = [i ['user_id ' ] for i in verified_users ]
577576 if user not in verified_users :
578577 logging .warn (
579578 f'Skipping { user } . { user } is not a verified contributor for the { project ["name" ]} '
580579 )
580+ return
581581
582582 folder_name = 'root'
583583 if folder :
@@ -587,6 +587,7 @@ def assign_images(project, image_names, user):
587587 team_id = project ['team_id' ])
588588 for log in logs :
589589 logger .warn (log )
590+ logger .info ("Assign images to user %s" , user )
590591
591592
592593def assign_folder (project , folder_name , users ):
@@ -602,9 +603,9 @@ def assign_folder(project, folder_name, users):
602603 """
603604
604605 project_meta = get_project_metadata (project , include_contributors = True )
605- verified_users = get_team_metadata ()["users" ]
606+ verified_users = project_meta ["contributors" ]
607+ verified_users = [i ['user_id' ] for i in verified_users ]
606608 project_name = project_meta ['name' ]
607- verified_users = [i ['id' ] for i in verified_users ]
608609 verified_users = set (users ).intersection (set (verified_users ))
609610 unverified_contributor = set (users ) - verified_users
610611
@@ -614,6 +615,9 @@ def assign_folder(project, folder_name, users):
614615 )
615616 continue
616617
618+ if not verified_users :
619+ return
620+
617621 params = {
618622 "project_id" : project_meta ['id' ],
619623 "team_id" : project_meta ["team_id" ]
@@ -677,27 +681,12 @@ def unassign_images(project, image_names):
677681 :type image_names: list of str
678682 """
679683 project , folder = get_project_and_folder_metadata (project )
684+
680685 folder_name = 'root'
681686 if folder :
682687 folder_name = folder ['name' ]
683- params = {
684- "project_id" : project ['id' ],
685- "team_id" : project ["team_id" ]
686- }
687- json_req = {
688- "image_names" : image_names ,
689- "remove_user_ids" : ["all" ],
690- "folder_name" : folder_name
691- }
692-
693- response = _api .send_request (
694- req_type = 'PUT' ,
695- path = '/images/editAssignment' ,
696- params = params ,
697- json_req = json_req
698- )
699-
700- if not response .ok :
701- raise SABaseException (
702- response .status_code , "Couldn't unassign images " + response .text
703- )
688+ if not image_names :
689+ return
690+ logs = _unassign_images (folder_name = folder_name ,image_names = image_names ,project_id = project ['id' ],team_id = project ['team_id' ])
691+ for log in logs :
692+ logger .warn (log )
0 commit comments