
    Æe+                         d dl mZmZ d dlmZmZ d dlmZmZ  G d de      Z	 G d de      Z
 G d d	e
      Z G d
 de	      Z G d de
      Z G d de	      Z e       Z e       Zy)    )ABCabstractmethod)OptionalSequence)
exceptionsutilsc                      e Zd ZU dZeed<   dZeed<   ededdfd       Zedd       Z	edd       Z
 ej                  d	      defd
       Zedee   fd       Z ej                  d      defd       Zedd       Zy)
BaseJobSet namejob_namereturnNc                      y N selfr   s     6/usr/lib/python3/dist-packages/rope/base/taskhandle.pystarted_jobzBaseJobSet.started_job           c                      y r   r   r   s    r   finished_jobzBaseJobSet.finished_job   r   r   c                      y r   r   r   s    r   check_statuszBaseJobSet.check_status   r   r   3Just use JobSet.job_name attribute/property insteadc                      y r   r   r   s    r   get_active_job_namezBaseJobSet.get_active_job_name   r   r   c                      y r   r   r   s    r   get_percent_donezBaseJobSet.get_percent_done   r   r   /Just use JobSet.name attribute/property insteadc                      y r   r   r   s    r   get_namezBaseJobSet.get_name   r   r   c                      y)z|
        Increment the number of tasks to complete.

        This is used if the number is not known ahead of time.
        Nr   r   s    r   	incrementzBaseJobSet.increment#   s     	r   r   N)__name__
__module____qualname__r   str__annotations__r   r   r   r   r   r   
deprecatedr   r   floatr!   r$   r&   r   r   r   r
   r
      s    D#NHc        UKLS  M (5/   UGH#  I  r   r
   c                       e Zd Zedd       Zedee   fd       Zedd       Zede	fd       Z
edee   fd       Z	 dded	ee   defd
ZddZy)BaseTaskHandler   Nc                      y r   r   r   s    r   stopzBaseTaskHandle.stop.   r   r   c                      y r   r   r   s    r   current_jobsetzBaseTaskHandle.current_jobset2   r   r   c                      y r   r   r   s    r   add_observerzBaseTaskHandle.add_observer6   r   r   c                      y r   r   r   s    r   
is_stoppedzBaseTaskHandle.is_stopped:   r   r   c                      y r   r   r   s    r   get_jobsetszBaseTaskHandle.get_jobsets>   r   r   r   countc                      y r   r   )r   r   r;   s      r   create_jobsetzBaseTaskHandle.create_jobsetB   s     	r   c                      y r   r   r   s    r   _inform_observersz BaseTaskHandle._inform_observersG       r   r'   JobSetN)r(   r)   r*   r   r2   r   r
   r4   r6   boolr8   r   r:   r+   intr=   r?   r   r   r   r0   r0   -   s       4     D   Xj1   <@+3C=	
r   r0   c                   @    e Zd Zd
dZd Zd Zd Zd Zd ZddZ	d	 Z
y)
TaskHandlec                 J    || _         || _        d| _        g | _        g | _        y)zConstruct a TaskHandle

        If `interrupts` is `False` the task won't be interrupted by
        calling `TaskHandle.stop()`.

        FN)r   
interruptsstoppedjob_sets	observers)r   r   rH   s      r   __init__zTaskHandle.__init__L   s'     	$r   c                 L    | j                   rd| _        | j                          yy)zInterrupts the refactoringTN)rH   rI   r?   r   s    r   r2   zTaskHandle.stopY   s!    ??DL""$ r   c                 :    | j                   r| j                   d   S y)Return the current `JobSet`NrJ   r   s    r   r4   zTaskHandle.current_jobset_   s    ====$$ r   c                 :    | j                   j                  |       y)zRegister an observer for this task handle

        The observer is notified whenever the task is stopped or
        a job gets finished.

        N)rK   appendr   observers     r   r6   zTaskHandle.add_observerd   s     	h'r   c                     | j                   S r   )rI   r   s    r   r8   zTaskHandle.is_stoppedm   s    ||r   c                     | j                   S r   rQ   r   s    r   r:   zTaskHandle.get_jobsetsp   s    }}r   Nc                 x    t        | ||      }| j                  j                  |       | j                          |S )N)r   r;   )rB   rJ   rS   r?   )r   r   r;   results       r   r=   zTaskHandle.create_jobsets   s3    4u5V$ r   c                 F    t        | j                        D ]	  } |         y r   )listrK   rT   s     r   r?   zTaskHandle._inform_observersy   s    T^^, 	HJ	r   )TaskTrA   )r(   r)   r*   rL   r2   r4   r6   r8   r:   r=   r?   r   r   r   rF   rF   K   s*    %%
(r   rF   c                       e Zd Zd Zd Zd Zd Z ej                  d      d        Z	d Z
 ej                  d      d	        Zd
 Zy)rB   c                 J    || _         || _        || _        d| _        d | _        y )Nr   )handler   r;   doner   )r   r_   r   r;   s       r   rL   zJobSet.__init__   s%    	
	r   c                 f    | j                          || _        | j                  j                          y r   )r   r   r_   r?   r   s     r   r   zJobSet.started_job   s%    %%'r   c                     | j                          | xj                  dz  c_        | j                  j                          d | _        y N   )r   r`   r_   r?   r   r   s    r   r   zJobSet.finished_job   s2    		Q	%%'r   c                 `    | j                   j                         rt        j                         y r   )r_   r8   r   InterruptedTaskErrorr   s    r   r   zJobSet.check_status   s&    ;;!!#1133 $r   r   c                     | j                   S r   )r   r   s    r   r   zJobSet.get_active_job_name   s    }}r   c                     | j                   8| j                   dkD  r(| j                  dz  | j                   z  }t        |d      S y y )Nr   d   )r;   r`   min)r   percents     r   r!   zJobSet.get_percent_done   sA    ::!djj1nii#o3Gw$$ '5!r   r"   c                     | j                   S r   )r   r   s    r   r$   zJobSet.get_name   s    yyr   c                 .    | xj                   dz  c_         y rc   )r;   r   s    r   r&   zJobSet.increment   s    

a
r   N)r(   r)   r*   rL   r   r   r   r   r-   r   r!   r$   r&   r   r   r   rB   rB   ~   sf    (
4 UKL M%
 UGH Ir   rB   c                   2    e Zd Zd Zd Zd Zd Zd ZddZy)	NullTaskHandlec                      y)NFr   r   s    r   r8   zNullTaskHandle.is_stopped   s    r   c                      y r   r   r   s    r   r2   zNullTaskHandle.stop   r@   r   c                     t               S r   )
NullJobSet)r   argskwdss      r   r=   zNullTaskHandle.create_jobset   s
    |r   c                     g S r   r   r   s    r   r:   zNullTaskHandle.get_jobsets   s    	r   c                      y r   r   rT   s     r   r6   zNullTaskHandle.add_observer   r@   r   Nc                      y)rO   Nr   r   s    r   r4   zNullTaskHandle.current_jobset   s    r   r'   )	r(   r)   r*   r8   r2   r=   r:   r6   r4   r   r   r   ro   ro      s     r   ro   c                       e Zd Zd Zd Zd Z ej                  d      d        Zd Z	 ej                  d      d        Z
d	 Zy
)rs   c                      y r   r   r   s     r   r   zNullJobSet.started_job   r@   r   c                      y r   r   r   s    r   r   zNullJobSet.finished_job   r@   r   c                      y r   r   r   s    r   r   zNullJobSet.check_status   r@   r   r   c                      y r   r   r   s    r   r   zNullJobSet.get_active_job_name   r   r   c                      y r   r   r   s    r   r!   zNullJobSet.get_percent_done   r@   r   r"   c                      y r   r   r   s    r   r$   zNullJobSet.get_name   r   r   c                      y r   r   r   s    r   r&   zNullJobSet.increment   r@   r   N)r(   r)   r*   r   r   r   r   r-   r   r!   r$   r&   r   r   r   rs   rs      sa     UKL M UGH Ir   rs   N)abcr   r   typingr   r   	rope.baser   r   r
   r0   rF   rB   ro   rs   DEFAULT_TASK_HANDLEDEFAULT_JOB_SETr   r   r   <module>r      sk    # % '# #LS <0 0f%Z %P^ * 2 %& ,r   