
    h                         d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZmZ ddlmZ ddlmZ dd	lmZmZ ej                            d
          ZdZ G d dej                  ZdS )zScheduler for Python functions.

.. note::
    This is used for the thread-based worker only,
    not for amqp/redis/sqs/qpid where :mod:`kombu.asynchronous.timer` is used.
    N)count)TIMEOUT_MAX)sleep)AnyCallableIteratorOptionalTuple)Entry)Timer)loggerto_timestampTIMER_DEBUG)r   Scheduler   r   c                   v    e Zd ZU dZeZeZdZeed<   dZ	e
eegdf                  ed<    ed          Zeed<   erded	ed
df fdZ	 	 	 	 	 d)de
e         de
eegdf                  de
eegdf                  de
ed gdf                  de
e         d	ed
df fdZd
e
e         fdZexZZd*dZd*dZd*dZdeded	ed
efdZd+dedede
e         d
efdZded	ed
efdZded	ed
efdZded	ed
efdZ ded	ed
efdZ!d,d eded
dfd!Z"d"ed
dfd#Z#d*d$Z$d
efd%Z%d
efd&Z&d
efd'Z'e'Z(e)d
e*fd(            Z+ xZ,S )-r   z^Timer thread.

    Note:
        This is only used for transports not supporting AsyncIO.
    FrunningNon_tick   _timer_countargskwargsreturnc                     dd l }t          d           |                                  t                      j        |i | d S )Nr   z- Timer starting)	tracebackprintprint_stacksuperstart)selfr   r   r   	__class__s       S/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/celery/utils/timer2.pyr   zTimer.start(   sQ    $%%%!!###EGGM4*6*****    scheduleon_erroron_startmax_intervalc                    |p|                      ||          | _        || _        |p| j        | _        t	                                                       t          j                    | _        t          j                    | _	        t          j
                    | _        t          j        | j                  | _        d| _        dt          | j                   | _        d S )N)r$   r&   TzTimer-)r   r#   r%   r   r   __init__	threadingEvent_Timer__is_shutdown_Timer__is_stoppedLockmutex	Condition	not_emptydaemonnextr   name)r   r#   r$   r   r%   r&   r   r    s          r!   r(   zTimer.__init__.   s    
 ! MDMM8?K %2 %M %M .$,
 '_..%O--^%%
",TZ886T$"34466			r"   c                     | j         5  t          | j                  \  }}|*|| j                             d           |cd d d            S 	 d d d            n# 1 swxY w Y   | j                            |          S )Ng      ?)r0   r2   	schedulerwaitr#   apply_entry)r   delayentrys      r!   _next_entryzTimer._next_entryC   s    ^ 	 	  //LE5}=N'',,,	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 }((///s   7AA Ac                 V   	 d| _         t          | j                  | _        | j                                        sb|                                 }|r3| j        r|                     |           t          n(t          |           | j                                        b	 | j	        
                                 d S # t          $ r Y d S w xY w# t          $ rT}t          j        d|d           t          j                                         t%          j        d           Y d }~d S d }~ww xY w)NTzThread Timer crashed: %r)exc_infor   )r   iterr#   r5   r+   is_setr:   r   r   r,   set	TypeError	Exceptionr   errorsysstderrflushos_exit)r   r8   excs      r!   runz	Timer.runO   sC   	DLPTUYUbPcPcDN(//11 !((** !| ,U+++}%LLL (//11 !!%%'''''      	 	 	L3S4HHHHJHQKKKKKKKKK	s7   BC
 B9 9
CC
 CC
 

D(A	D##D(c                     | j                                          | j        r<| j                                         |                     t                     d| _        d S d S )NF)r+   r?   r   r,   r6   joinTHREAD_TIMEOUT_MAXr   s    r!   stopz
Timer.stopg   s^       < 	!""$$$II())) DLLL	! 	!r"   c                     | j         sF|                                 s4| j        r|                     |            |                                  d S d S d S N)r   is_aliver%   r   rM   s    r!   ensure_startedzTimer.ensure_startedn   s\    | 	DMMOO 	} $d###JJLLLLL	 	 	 	r"   methc                     |                                   | j        5   t          | j        |          |i |}| j                                         |cd d d            S # 1 swxY w Y   d S rP   )rR   r.   getattrr#   r0   notify)r   rS   r   r   r9   s        r!   	_do_enterzTimer._do_entert   s    Z 	 	0GDM400$A&AAEN!!###	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   6AA#&A#r9   etapriorityc                 4    |                      d|||          S )Nenter_at)rY   rW   )r   r9   rX   rY   s       r!   enterzTimer.enter{   s    ~~j%x~HHHr"   c                 $     | j         dg|R i |S )Ncall_atr\   r   r   r   s      r!   r_   zTimer.call_at~   s$    t~i9$999&999r"   c                 $     | j         dg|R i |S )Nenter_afterr\   r`   s      r!   rb   zTimer.enter_after   s$    t~m=d===f===r"   c                 $     | j         dg|R i |S )N
call_afterr\   r`   s      r!   rd   zTimer.call_after   s$    t~l<T<<<V<<<r"   c                 $     | j         dg|R i |S )Ncall_repeatedlyr\   r`   s      r!   rf   zTimer.call_repeatedly   s%    t~/A$AAA&AAAr"   
   secsc                 H    |                      |t          j        |           d S rP   )rd   rC   exit)r   rh   rY   s      r!   
exit_afterzTimer.exit_after   s     ch11111r"   trefc                 .    |                                  d S rP   )cancel)r   rl   s     r!   rn   zTimer.cancel   s    r"   c                 8    | j                                          d S rP   )r#   clearrM   s    r!   rp   zTimer.clear   s    r"   c                 "    t          |            S rP   )lenrM   s    r!   emptyzTimer.empty   s    t99}r"   c                 *    t          | j                  S rP   )rr   r#   rM   s    r!   __len__zTimer.__len__   s    4=!!!r"   c                     dS )z``bool(timer)``.T rM   s    r!   __bool__zTimer.__bool__   s    tr"   c                     | j         j        S rP   )r#   queuerM   s    r!   rz   zTimer.queue   s    }""r"   )NNNNN)r   NrP   )rg   )-__name__
__module____qualname____doc__r   r   r   bool__annotations__r   r	   r   floatr   r   r   r   r   rA   r(   r:   __next__r2   rI   rN   rR   strrW   intr]   r_   rb   rd   rf   rk   rn   rp   rs   ru   rx   __nonzero__propertylistrz   __classcell__)r    s   @r!   r   r      s          EHGT15GXhw}-.555%((L%""" +	+s 	+c 	+d 	+ 	+ 	+ 	+ 	+ 	+ 7;CG>BAE15	7 7(!3 7#Hi[$->$?@7"8UGTM#:;7 $HgY_$=>7  (	7 BE	7 JN	7 7 7 7 7 7*	0Xe_ 	0 	0 	0 	0 "!Ht   0! ! ! !   c #      I I5 Iu I IQV I I I I:S :C :E : : : :> > > > > > >= =s =u = = = =BS BC BE B B B B2 2u 2 2T 2 2 2 25 T       t    " " " " "$     K#t # # # X# # # # #r"   r   )r~   rF   rC   r)   	itertoolsr   r   rL   timer   typingr   r   r   r	   r
   kombu.asynchronous.timerr   r   r   r   r   environgetr   __all__Threadrw   r"   r!   <module>r      s$    
			 



           7 7 7 7 7 7       ; ; ; ; ; ; ; ; ; ; ; ; ; ; * * * * * * 6 6 6 6 6 6 9 9 9 9 9 9 9 9jnn]++
8H# H# H# H# H#I H# H# H# H# H#r"   