
    Ih.                    0   U d Z ddlm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 ddlmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZmZmZmZ ddlmZ ddlmZ dZ ee       Z!da"de#d<   dZ$ G d de%      Z&d Z'ed        Z(ddZ)ddZ* G d d      Z+y)zEvent loop implementation.    )annotationsN)contextmanager)copy)Empty)sleep)GeneratorType)Thenablepromise)
get_logger)fileno)ERRREADWRITEpoll)cached_property   )Timer)Hubget_event_loopset_event_loop
Hub | None_current_loopz<Received unknown event %r for fd %r, please contact support!c                      e Zd ZdZy)StopzStops the event loop.N)__name__
__module____qualname____doc__     O/var/www/html/planif/env/lib/python3.12/site-packages/kombu/asynchronous/hub.pyr   r       s    r    r   c                     t               N)r   r   r    r!   _raise_stop_errorr$   $   s	    
&Lr    c               /     K   d  y wr#   r   )argskwargss     r!   _dummy_contextr(   (   s	     	s   c                     t         S )zGet current event loop object.r   r   r    r!   r   r   -   s    r    c                
    | a | S )z"Set the current event loop object.r*   )loops    r!   r   r   2   s     MKr    c            
      <   e Zd ZdZeZeZeZdZd#dZe	d        Z
e
j                  d        Z
d Zd Zd Zd	 Zd
 Z	 	 d$dZd Zd%dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#e$e%e&e'e(e)e*eeef
dZ+d Z,d  Z-e.d!        Z/e	d"        Z0y)&r   z~Event loop object.

    Arguments:
    ---------
        timer (kombu.asynchronous.Timer): Specify custom timer instance.
    Nc                H   ||n	t               | _        i | _        i | _        t	               | _        t	               | _        t	               | _        t        j                         | _
        d| _        d | _        t	               | _        d | _        d| _        | j!                          y )NFr   )r   timerreaderswritersseton_tickon_close_ready	threadingLock_ready_lock_running_loopconsolidateconsolidate_callbackpropagate_errors_create_poller)selfr/   s     r!   __init__zHub.__init__N   s    #/UUW
ue$>>+
 5$(! "r    c                R    | j                   s| j                          | j                   S r#   )_pollerr>   r?   s    r!   pollerz
Hub.polleri   s    ||!||r    c                    || _         y r#   )rB   )r?   values     r!   rD   z
Hub.pollero   s	    r    c                D    | j                          | j                          y r#   )closer>   rC   s    r!   resetz	Hub.resets   s    

r    c                    t               | _        | j                  j                  | _        | j                  j                  | _        y r#   )r   rB   register_register_fd
unregister_unregister_fdrC   s    r!   r>   zHub._create_pollerw   s/    v LL11"ll55r    c                |    | j                   0| j                   j                          d | _         d | _        d | _        y y r#   )rB   rH   rL   rN   rC   s    r!   _close_pollerzHub._close_poller|   s8    <<#LL DL $D"&D	 $r    c                .    | j                  t               y r#   )	call_soonr$   rC   s    r!   stopzHub.stop   s    ()r    c                    dj                  t        |       t        | j                        t        | j                              S )Nz<Hub@{:#x}: R:{} W:{}>)formatidlenr0   r1   rC   s    r!   __repr__zHub.__repr__   s2    '..tHc$,,'T\\):
 	
r    c                   | j                   }d }|r@|j                  r4t        |      D ]&  }t        | j                        \  }}| n
	  |        ( t        |xs ||      S # |$ r  t
        t        f$ r  t        $ r@}	|	j                  t        j                  k(  r t        j                  d|	d       Y d }	~	d }	~	wt        $ r"}	t        j                  d|	d       Y d }	~	d }	~	ww xY w)NzError in timer: %rr   exc_info)r/   _queuerangenext	schedulerMemoryErrorAssertionErrorOSErrorerrnoENOMEMloggererror	Exceptionmin)
r?   	min_delay	max_delay
max_timers	propagater/   delayientryexcs
             r!   fire_timerszHub.fire_timers   s    

U\\:& H#DNN3u=HGH  5%Iy11 ! #^4  HyyELL0LL!5sQLGG  HLL!5sQLGGHs$   A!!C'>6B99C'C""C'c                v    	 | j                  |       | j                  |       y # | j                  |       w xY wr#   )_unregister_discardr?   fds     r!   _remove_from_loopzHub._remove_from_loop   s.    	R MM"DMM"s   % 8c                (   t        |      }	 | j                  j                  ||       |t        z  r| j                  n| j
                  }|r!| j                  j                  |       d ||<   y ||f||<   y # t        $ r | j                  |        w xY wr#   )
r   rD   rK   r   r0   r1   r;   add
ValueErrorrw   )r?   rv   callbackflagsr&   r;   dests          r!   ry   zHub.add   s    BZ	*KK  U+
 $)4<4<<T\\D  $$R(R#T>R  	""2&	s   A5 5Bc                <    t        |      }| j                  |       y r#   )r   rw   ru   s     r!   removez
Hub.remove   s    BZr"r    c                    d| _         	 	 	 | j                          # t        $ r Y nw xY w	 d| _         y # d| _         w xY w)NTF)r9   run_oncer   rC   s    r!   run_foreverzHub.run_forever   sJ    	"MMO   !DMEDMs    4  4 	(4 (4 	=c                \    	 t        | j                         y # t        $ r
 d | _        Y y w xY wr#   )r^   r,   StopIterationr:   rC   s    r!   r   zHub.run_once   s(    	O 	DJ	s    ++c                    t        |t              st        ||      }| j                  5  | j                  j                  |       d d d        |S # 1 sw Y   |S xY wr#   )
isinstancer	   r
   r8   r5   ry   )r?   r{   r&   s      r!   rR   zHub.call_soon   sK    (H-x.H 	&KKOOH%	&	&s   AAc                <    | j                   j                  |||      S r#   )r/   
call_afterr?   rm   r{   r&   s       r!   
call_laterzHub.call_later   s    zz$$UHd;;r    c                <    | j                   j                  |||      S r#   )r/   call_at)r?   whenr{   r&   s       r!   r   zHub.call_at   s    zz!!$$77r    c                <    | j                   j                  |||      S r#   )r/   call_repeatedlyr   s       r!   r   zHub.call_repeatedly   s    zz))%4@@r    c                @    | j                  ||t        t        z  |      S r#   )ry   r   r   r?   fdsr{   r&   s       r!   
add_readerzHub.add_reader   s    xxXtcz488r    c                2    | j                  ||t        |      S r#   )ry   r   r   s       r!   
add_writerzHub.add_writer   s    xxXud33r    c                   || j                   v }| j                   j                  |      }	 | j                  |       |r|\  }}| j                  ||t        |       y y # |r|\  }}| j                  ||t        |       w w xY wr#   )r1   getrw   ry   r   )r?   rv   writableon_writecbr&   s         r!   remove_readerzHub.remove_reader   s~    %<<##B'	.""2&#DR- x#DR- s   A "A?c                    || j                   v }| j                   j                  |      }	 | j                  |       |r%|\  }}| j                  ||t        t
        z  |       y y # |r%|\  }}| j                  ||t        t
        z  |       w w xY wr#   )r0   r   rw   ry   r   r   )r?   rv   readableon_readr   r&   s         r!   remove_writerzHub.remove_writer   s    %,,""2&	3""2&"DRT2 x"DRT2 s   A$ $)Bc                p    	 | j                   j                  |       y # t        t        t        f$ r Y y w xY wr#   )rD   rM   AttributeErrorKeyErrorrb   ru   s     r!   rs   zHub._unregister   s2    	KK""2&'2 		s    55c                    | j                   5  | j                  }t               | _        |cd d d        S # 1 sw Y   y xY wr#   )r8   r5   r2   )r?   readys     r!   
_pop_readyzHub._pop_ready   s5     	KKE%DK	 	 	s   4=c                   | j                   D cg c]  }| j                  |       c} | j                   j                          | j                  D cg c]  }| j                  |       c} | j                  j                          | j                  j                          | j                          | j                  D ]
  } ||         | j                         }|D ]	  } |         y c c}w c c}w r#   )r0   rs   clearr1   r;   rP   r4   r   )r?   r&   rv   r{   todositems         r!   rH   z	Hub.close  s    (,5"		"	5(,5"		"	5  	HTN	 ! 	DF	 	65s   C)C.c                    t        |      }| j                  j                  |d        | j                  j                  |d        | j                  j                  |       y r#   )r   r0   popr1   r;   discardru   s     r!   rt   zHub._discard  sG    BZT"T"  $r    c                6    t         j                  d||d       y )Nz Callback %r raised exception: %rr   rZ   )re   rf   )r?   r{   rp   s      r!   on_callback_errorzHub.on_callback_error  s    .# 	 	
r    c              #  *  K   | j                   | j                  }}| j                  j                  }| j                  }| j
                  }| j                  j                  }| j                  }| j                  }| j                  }	 | j                         }|D ]  }|s |         |r	 ||      nd}t        | j                        D ]	  } |         |s|rg }	  ||      }|xs dD ]  \  }}d}||v r#|j                  |      |j!                  |       /d x}}||z  r
	 ||   \  }}n4||	z  r
	 ||   \  }}n%||
z  rd}nt&        j)                  t*        ||       d}|r(	 |j                  |      xs |j                  |      \  }}|| j                  |       t/        ||      r
	  ||       	  ||   |r ||       n | ||d             d  V# t        $ r Y y w xY w# |$ r | j#                  |       Y w xY w# |$ r | j%                  |       Y 7w xY w# t,        $ r Y w xY w# t0        $ r1}|j2                  t2        j4                  k7  r  ||       Y d }~d }~w|$ r Y t6        $ r
  ||        w xY w# |$ r Y w xY ww)Nr   )rl   r   FTg?)r0   r1   rD   r   rq   r   r/   r\   r;   r<   r=   r   r   r3   rz   r   appendr   r   re   infoW_UNKNOWN_EVENT	TypeErrorr   rb   rc   EBADFrg   ) r?   	generatorr   rh   r^   r   r   r   r   r   r   r0   r1   r   rq   
hub_remove	scheduledr;   r<   rl   todor   poll_timeouttick_callbackto_consolidateeventsrv   eventgeneral_errorr   cbargsrp   s                                    r!   create_loopzHub.create_loop   s      <<{{&&[[
JJ%%	&&#88))	??$D F @I;;aL!%dll!3    '!#!,/F
 "(2 5!IB$)M[(#KKO3&--b1 "&&Bt|%)0JB %)0JB (,OUB?(,$!*1++b/ +:*1++b/ 'B
 zB !"i0
" H!Kg5!l "(8 c,,-a $ "   ( % ..r2$%  ( % ..r2$%  ) ! !  ' +"yyEKK7 %&rNN, ! ( "&rN!"  % ! !s   BJ=JG ">J!G))J0H8(J!'H# J)H21J3J8"J	G&#J%G&&J)H?JHJH JH  J#	H/,J.H//J2	J;&I'!J'J/J2JJJJJJc                    ddl m}  ||       S )Nr   )repr_active)debugr   )r?   r   s     r!   r   zHub.repr_active  s    &4  r    c                (    ddl m}  || |xs g       S )Nr   )repr_events)r   r   )r?   r   r   s      r!   r   zHub.repr_events  s    &42..r    c                ,    t        | j                        S r#   )iterr/   rC   s    r!   r_   zHub.scheduler  s    DJJr    c                \    | j                   | j                         | _         | j                   S r#   )r:   r   rC   s    r!   r,   zHub.loop  s&    ::))+DJzzr    r#   )r   
   r   r   )r   F)1r   r   r   r   r   r   r   r4   r@   propertyrD   setterrI   r>   rP   rS   rX   rq   rw   ry   r   r   r   rR   r   r   r   r   r   r   r   rs   r   rH   rt   r   r   r   rh   r^   r   r   r   r   r   r   r   r_   r,   r   r    r!   r   r   9   s)    D E C H6  
 ]] 6
'*

 AC 2.*#	"<8A94.3&%
 (u#D}%D3]~!/      r    r   )returnr   )r,   r   r   r   ),r   
__future__r   rc   r6   
contextlibr   r   queuer   timer   typesr   r   viner	   r
   	kombu.logr   kombu.utils.compatr   kombu.utils.eventior   r   r   r   kombu.utils.objectsr   r/   r   __all__r   re   r   __annotations__r   BaseExceptionr   r$   r(   r   r   r   r   r    r!   <module>r      s      "   %    , "   % 6 6 / 
5	H	 z  
 =   
 

V Vr    