
    c~                        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dS )    )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dS )
BaseJobSet namejob_namereturnNc                     d S N selfr   s     4lib/python3.11/site-packages/rope/base/taskhandle.pystarted_jobzBaseJobSet.started_job           c                     d S r   r   r   s    r   finished_jobzBaseJobSet.finished_job   r   r   c                     d S r   r   r   s    r   check_statuszBaseJobSet.check_status   r   r   3Just use JobSet.job_name attribute/property insteadc                     d S r   r   r   s    r   get_active_job_namezBaseJobSet.get_active_job_name   r   r   c                     d S r   r   r   s    r   get_percent_donezBaseJobSet.get_percent_done   r   r   /Just use JobSet.name attribute/property insteadc                     d S r   r   r   s    r   get_namezBaseJobSet.get_name   r   r   c                     dS )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
      sX        D#NNNHc     ^    ^    ^ UKLLS    ML (5/    ^ UGHH#    IH    ^  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dS )BaseTaskHandler   Nc                     d S r   r   r   s    r   stopzBaseTaskHandle.stop.   r   r   c                     d S r   r   r   s    r   current_jobsetzBaseTaskHandle.current_jobset2   r   r   c                     d S r   r   r   s    r   add_observerzBaseTaskHandle.add_observer6   r   r   c                     d S r   r   r   s    r   
is_stoppedzBaseTaskHandle.is_stopped:   r   r   c                     d S r   r   r   s    r   get_jobsetszBaseTaskHandle.get_jobsets>   r   r   JobSetr   countc                     d S r   r   )r   r   r<   s      r   create_jobsetzBaseTaskHandle.create_jobsetB   s	     	r   c                     d S r   r   r   s    r   _inform_observersz BaseTaskHandle._inform_observersG       r   r'   r;   N)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                   B    e Zd ZddZd Zd Zd Zd Zd ZddZ	d Z
d
S )
TaskHandleTaskTc                 L    || _         || _        d| _        g | _        g | _        dS )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   rI   s      r   __init__zTaskHandle.__init__L   s+     	$r   c                 N    | j         rd| _        |                                  dS dS )zInterrupts the refactoringTN)rI   rJ   r@   r   s    r   r2   zTaskHandle.stopY   s5    ? 	%DL""$$$$$	% 	%r   c                 .    | j         r| j         d         S dS )Return the current `JobSet`NrK   r   s    r   r4   zTaskHandle.current_jobset_   s#    = 	%=$$	% 	%r   c                 :    | j                             |           dS )zRegister an observer for this task handle

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

        N)rL   appendr   observers     r   r6   zTaskHandle.add_observerd   s      	h'''''r   c                     | j         S r   )rJ   r   s    r   r8   zTaskHandle.is_stoppedm   s
    |r   c                     | j         S r   rR   r   s    r   r:   zTaskHandle.get_jobsetsp   s
    }r   r;   Nc                     t          | ||          }| j                            |           |                                  |S )N)r   r<   )r;   rK   rT   r@   )r   r   r<   results       r   r>   zTaskHandle.create_jobsets   sC    4u555V$$$   r   c                 H    t          | j                  D ]} |             d S r   )listrL   rU   s     r   r@   zTaskHandle._inform_observersy   s2    T^,, 	 	HHJJJJ	 	r   )rG   TrB   )r(   r)   r*   rM   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dS )r;   c                 L    || _         || _        || _        d| _        d | _        d S )Nr   )handler   r<   doner   )r   r_   r   r<   s       r   rM   zJobSet.__init__   s)    	
	r   c                 n    |                                   || _        | j                                         d S r   )r   r   r_   r@   r   s     r   r   zJobSet.started_job   s5    %%'''''r   c                     |                                   | xj        dz  c_        | j                                         d | _        d S N   )r   r`   r_   r@   r   r   s    r   r   zJobSet.finished_job   sB    		Q		%%'''r   c                 ^    | j                                         rt          j                    d S r   )r_   r8   r   InterruptedTaskErrorr   s    r   r   zJobSet.check_status   s1    ;!!## 	41333	4 	4r   r   c                     | j         S r   )r   r   s    r   r   zJobSet.get_active_job_name   s
    }r   c                 r    | j         -| j         dk    r$| j        dz  | j         z  }t          |d          S d S d S )Nr   d   )r<   r`   min)r   percents     r   r!   zJobSet.get_percent_done   sO    : 	%dj1n 	%i#o3Gw$$$	% 	% 	% 	%r   r"   c                     | j         S r   )r   r   s    r   r$   zJobSet.get_name   s
    yr   c                 &    | xj         dz  c_         d S rc   )r<   r   s    r   r&   zJobSet.increment   s    

a



r   Nr(   r)   r*   rM   r   r   r   r   r-   r   r!   r$   r&   r   r   r   r;   r;   ~   s          ( ( (
  4 4 4 UKLL  ML% % %
 UGHH  IH    r   r;   c                   :    e Zd Zd Zd Zd Zd Zd Zd Zd
d	Z	dS )NullTaskHandlec                     d S r   r   r   s    r   rM   zNullTaskHandle.__init__   rA   r   c                     dS )NFr   r   s    r   r8   zNullTaskHandle.is_stopped   s    ur   c                     d S r   r   r   s    r   r2   zNullTaskHandle.stop   rA   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                     d S r   r   rU   s     r   r6   zNullTaskHandle.add_observer   rA   r   r   Nc                     dS )rP   Nr   r   s    r   r4   zNullTaskHandle.current_jobset   s    tr   r'   )
r(   r)   r*   rM   r8   r2   r>   r:   r6   r4   r   r   r   rp   rp      s                         r   rp   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dS )ru   c                     d S r   r   )r   rv   s     r   rM   zNullJobSet.__init__   rA   r   c                     d S r   r   r   s     r   r   zNullJobSet.started_job   rA   r   c                     d S r   r   r   s    r   r   zNullJobSet.finished_job   rA   r   c                     d S r   r   r   s    r   r   zNullJobSet.check_status   rA   r   r   c                     d S r   r   r   s    r   r   zNullJobSet.get_active_job_name   r   r   c                     d S r   r   r   s    r   r!   zNullJobSet.get_percent_done   rA   r   r"   c                     d S r   r   r   s    r   r$   zNullJobSet.get_name   r   r   c                     d S r   r   r   s    r   r&   zNullJobSet.increment   rA   r   Nrn   r   r   r   ru   ru      s                 UKLL  ML   UGHH  IH    r   ru   N)abcr   r   typingr   r   	rope.baser   r   r
   r0   rF   r;   rp   ru   DEFAULT_TASK_HANDLEDEFAULT_JOB_SETr   r   r   <module>r      sk   # # # # # # # # % % % % % % % % ' ' ' ' ' ' ' '# # # # # # # #L    S   <0 0 0 0 0 0 0 0f% % % % %Z % % %P    ^   0       8 %n&& *,,r   