ó
ĊZc           @   sl   d  d l  m Z d e f d     YZ d e f d     YZ d e f d     YZ d e f d	     YZ d
 S(   i˙˙˙˙(   t
   exceptionst
   TaskHandlec           B   s\   e  Z d  e d  Z d   Z d   Z d   Z d   Z d   Z d d
 d  Z
 d	   Z RS(   t   Taskc         C   s1   | |  _  | |  _ t |  _ g  |  _ g  |  _ d S(   s   Construct a TaskHandle

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

        N(   t   namet
   interruptst   Falset   stoppedt   job_setst	   observers(   t   selfR   R   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   __init__   s
    				c         C   s#   |  j  r t |  _ |  j   n  d S(   s   Interrupts the refactoringN(   R   t   TrueR   t   _inform_observers(   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   stop   s    		c         C   s   |  j  r |  j  d Sd S(   s   Return the current `JobSet`i˙˙˙˙N(   R   (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   current_jobset   s    	c         C   s   |  j  j |  d S(   s   Register an observer for this task handle

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

        N(   R   t   append(   R	   t   observer(    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   add_observer   s    c         C   s   |  j  S(   N(   R   (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt
   is_stopped'   s    c         C   s   |  j  S(   N(   R   (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   get_jobsets*   s    t   JobSetc         C   s6   t  |  d | d | } |  j j |  |  j   | S(   NR   t   count(   R   R   R   R   (   R	   R   R   t   result(    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   create_jobset-   s    
c         C   s%   x t  |  j  D] } |   q Wd  S(   N(   t   listR   (   R	   R   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   3   s    N(   t   __name__t
   __module__R   R
   R   R   R   R   R   t   NoneR   R   (    (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR      s   						R   c           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s1   | |  _  | |  _ | |  _ d |  _ d  |  _ d  S(   Ni    (   t   handleR   R   t   doneR   t   job_name(   R	   R   R   R   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR
   :   s
    				c         C   s$   |  j    | |  _ |  j j   d  S(   N(   t   check_statusR   R   R   (   R	   R   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   started_jobA   s    
	c         C   s3   |  j    |  j d 7_ |  j j   d  |  _ d  S(   Ni   (   R   R   R   R   R   R   (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   finished_jobF   s    
c         C   s"   |  j  j   r t j    n  d  S(   N(   R   R   R    t   InterruptedTaskError(   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   L   s    c         C   s   |  j  S(   N(   R   (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   get_active_job_nameP   s    c         C   sC   |  j  d  k	 r? |  j  d k r? |  j d |  j  } t | d  Sd  S(   Ni    id   (   R   R   R   t   min(   R	   t   percent(    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   get_percent_doneS   s    c         C   s   |  j  S(   N(   R   (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   get_nameX   s    (	   R   R   R
   R    R!   R   R#   R&   R'   (    (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   8   s   						t   NullTaskHandlec           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   d  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR
   ^   s    c         C   s   t  S(   N(   R   (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   a   s    c         C   s   d  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   d   s    c         O   s   t    S(   N(   t
   NullJobSet(   R	   t   argst   kwds(    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   g   s    c         C   s   g  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   j   s    c         C   s   d  S(   N(    (   R	   R   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   m   s    (   R   R   R
   R   R   R   R   R   (    (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR(   \   s   					R)   c           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   d  S(   N(    (   R	   R   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR    s   s    c         C   s   d  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR!   v   s    c         C   s   d  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR   y   s    c         C   s   d  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR#   |   s    c         C   s   d  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR&      s    c         C   s   d  S(   N(    (   R	   (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR'      s    (   R   R   R    R!   R   R#   R&   R'   (    (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyR)   q   s   					N(   t	   rope.baseR    t   objectR   R   R(   R)   (    (    (    s3   lib/python2.7/site-packages/rope/base/taskhandle.pyt   <module>   s   4$