
    	]j*                     ,     G d  d      Z  G d d      Zy)c                   j    e Zd ZdddefdZdefdZddZedd       Zd	 Z	e
d
        Zd ZdefdZy)	TaskMixinuserUserreturnc                      y)zCalled by Task#has_permissionT selfr   s     C/root/env/lib/python3.12/site-packages/label_studio/tasks/mixins.pyhas_permissionzTaskMixin.has_permission           c                     | j                   j                  d      j                         j                         }|| j                  k\  S )Ncompleted_by)completed_annotationsvaluesdistinctcountoverlap)r
   ns     r   _get_is_labeled_valuezTaskMixin._get_is_labeled_value   s9    &&--n=FFHNNPDLL  r   Nc                 .    | j                         | _        y N)r   
is_labeled)r
   argskwargss      r   update_is_labeledzTaskMixin.update_is_labeled
   s    446r   c                      y r   r   )clstaskss     r   post_process_bulk_update_statsz(TaskMixin.post_process_bulk_update_stats   s    r   c                      y)z9
        Actions to execute before task deletion
        Nr   r
   s    r   before_delete_actionszTaskMixin.before_delete_actions   s     	r   c                      y)z=
        Actions to execute after bulk task deletion
        Nr   )	tasks_idsprojects     r   after_bulk_delete_actionsz#TaskMixin.after_bulk_delete_actions   s    
 	r   c                      y r   r   r#   s    r   get_rejected_queryzTaskMixin.get_rejected_query   s    r   c                      y)NTr   r#   s    r   can_be_skippedzTaskMixin.can_be_skipped!   s    r   )r   N)__name__
__module____qualname__boolr   r   r   classmethodr!   r$   staticmethodr(   r*   r,   r   r   r   r   r      sd    6 d !t !7     r   r   c                       e Zd ZdddefdZy)AnnotationMixinr   r   r   c                      y)z#Called by Annotation#has_permissionTr   r	   s     r   r   zAnnotationMixin.has_permission&   r   r   N)r-   r.   r/   r0   r   r   r   r   r4   r4   %   s    6 d r   r4   N)r   r4   r   r   r   <module>r6      s   ! !H r   