
    Ph{                     Z    d dl Z d dlZd dlmZ d dlZ	 dZ G d de      Z	 G d de	      Z
y)    N)	greenletsFc                   F    e Zd Zd Zed        Zd Zd Zd Zd Z	d Z
d Zy	)
Timerc                     || _         |||f| _        d| _        t        r:t	        j
                         | _        t        j                  | j                         yy)a  Create a timer.
            seconds: The minimum number of seconds to wait before calling
            cb: The callback to call when the timer has expired
            *args: The arguments to pass to cb
            **kw: The keyword arguments to pass to cb

        This timer will not be run unless it is scheduled in a runloop by
        calling timer.schedule() or runloop.add_timer(timer).
        F)fileN)secondstplcalled_g_debugsixStringIO	tracebackprint_stack)selfr   cbargskws        ^C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\eventlet/hubs/timer.py__init__zTimer.__init__   sF     tR< \\^DN!!t~~6     c                     | j                    S N)r
   r   s    r   pendingzTimer.pending   s    ;;r   c           	          t        | dd       }t        | dd      \  }}}d|d|d|d|d	}t        r,t        | d	      r |d
| j                  j	                         z   z  }|S )Nr   r	   )NNNzTimer(z, z, *z, **)r   
)getattrr   hasattrr   getvalue)r   secsr   r   r   retvals         r   __repr__zTimer.__repr__"   sb    tY-tU,>?D""dB k2dT^^44666Fr   c                 d    | j                   \  }}} | j                  | j                  |g|i |S r   )r	   	__class__r   )r   r   r   r   s       r   copyz
Timer.copy+   s2    xxD"t~~dllB<<<<r   c                 x    d| _         t        j                  j                         j	                  |       | _        | S )z;Schedule this timer to run in the current runloop.
        F)r
   eventlethubsget_hub	add_timerscheduled_timer   s    r   schedulezTimer.schedule/   s0     &mm335??Er   c                     | j                   s$d| _         | j                  \  }}}	  ||i | 	 | `y y # t        $ r Y y w xY w# 	 | `w # t        $ r Y w w xY wxY wNT)r
   r	   AttributeErrorr   r   r   r   s       r   __call__zTimer.__call__6   sn    {{DK88LBbDB  & % s;   A 2 	>>AAA	AAAAc                     | j                   s8d| _         t        j                  j                         j	                  |        	 | `yy# t        $ r Y yw xY w)zwPrevent this timer from being called. If the timer has already
        been called or canceled, has no effect.
        TN)r
   r(   r)   r*   timer_canceledr	   r0   r   s    r   cancelzTimer.cancelB   sP     {{DKMM!!#2248H	 
 " s   A 	AAc                 0    t        |       t        |      k  S r   )id)r   others     r   __lt__zTimer.__lt__P   s    $x"U)##r   N)__name__
__module____qualname__r   propertyr   r#   r&   r-   r2   r5   r9    r   r   r   r      s9    7"  =

$r   r   c                   .    e Zd Zd Zed        Zd Zd Zy)
LocalTimerc                 h    t        j                         | _         t        j                  | g|i | y r   )greenlet
getcurrentr   r   )r   r   kwargss      r   r   zLocalTimer.__init__V   s(     ++-t-d-f-r   c                 b    | j                   | j                   j                  ry| j                   S )NF)rB   deadr
   r   s    r   r   zLocalTimer.pendingZ   s'    == DMM$6$6;;r   c                     | j                   sCd| _         | j                  | j                  j                  ry | j                  \  }}} ||i | y y r/   )r
   rB   rF   r	   r1   s       r   r2   zLocalTimer.__call__`   sH    {{DK}}(T]]-?-?88LBbOO r   c                 <    d | _         t        j                  |        y r   )rB   r   r5   r   s    r   r5   zLocalTimer.cancelh   s    Tr   N)r:   r;   r<   r   r=   r   r2   r5   r>   r   r   r@   r@   T   s%    .  
r   r@   )r   eventlet.hubsr(   eventlet.supportr   rB   r   r   objectr   r@   r>   r   r   <module>rL      s7      2 
QE$F E$P r   