@@ -650,28 +650,62 @@ def set_images_annotation_statuses(
650650 logger .info ("Annotations status of images changed" )
651651
652652 def delete_images (
653- self , project : Union [NotEmptyStr , dict ], image_names : Optional [List [str ]] = None
653+ self , project : Union [NotEmptyStr , dict ], image_names : Optional [list [str ]] = None
654654 ):
655- """Delete images in project.
655+ """delete images in project.
656656
657657 :param project: project name or folder path (e.g., "project1/folder1")
658658 :type project: str
659- :param image_names: to be deleted images' names. If None , all the images will be deleted
659+ :param image_names: to be deleted images' names. if none , all the images will be deleted
660660 :type image_names: list of strs
661661 """
662+
663+ warning_msg = (
664+ "We're deprecating the delete_images function. Please use delete_items instead."
665+ "Learn more. \n "
666+ "https://superannotate.readthedocs.io/en/stable/superannotate.sdk.html#superannotate.assign_items"
667+ )
668+ logger .warning (warning_msg )
669+ warnings .warn (warning_msg , DeprecationWarning )
662670 project_name , folder_name = extract_project_folder (project )
663671
664- if not isinstance (image_names , list ) and image_names is not None :
665- raise AppException ( "Image_names should be a list of str or None ." )
672+ if not isinstance (image_names , list ) and image_names is not none :
673+ raise appexception ( "image_names should be a list of str or none ." )
666674
667675 response = self .controller .delete_images (
668676 project_name = project_name , folder_name = folder_name , image_names = image_names
669677 )
678+ if response .errors :
679+ raise appexception (response .errors )
680+
681+ logger .info (
682+ f"images deleted in project { project_name } { '/' + folder_name if folder_name else '' } "
683+ )
684+
685+ def delete_items (
686+ self , project : str , items : Optional [List [str ]] = None
687+ ):
688+ """Delete items in a given project.
689+
690+ :param project: project name or folder path (e.g., "project1/folder1")
691+ :type project: str
692+ :param items: to be deleted items' names. If None, all the items will be deleted
693+ :type items: list of str
694+ """
695+ project_name , folder_name = extract_project_folder (project )
696+
697+ ## Type checking should be done in controller or by PyDantic?
698+ # if not isinstance(image_names, list) and image_names is not None:
699+ # raise AppException("Image_names should be a list of str or None.")
700+
701+ response = self .controller .delete_items (
702+ project_name = project_name , folder_name = folder_name , items = items
703+ )
670704 if response .errors :
671705 raise AppException (response .errors )
672706
673707 logger .info (
674- f"Images deleted in project { project_name } { '/' + folder_name if folder_name else '' } "
708+ f"Items deleted in project { project_name } { '/' + folder_name if folder_name else '' } "
675709 )
676710
677711 def assign_items (
0 commit comments