
     h-                        d 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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Z G d de           Z!d Z"ed             Z#d Z$d Z% G d d          Z&dS )zEvent loop implementation.    N)contextmanager)Empty)sleep)GeneratorType)Thenablepromise)
get_logger)fileno)ERRREADWRITEpoll)cached_property   )Timer)Hubget_event_loopset_event_loopz<Received unknown event %r for fd %r, please contact support!c                       e Zd ZdZdS )StopzStops the event loop.N)__name__
__module____qualname____doc__     R/var/www/html/Sam_Eipo/venv/lib/python3.11/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 V  d S r   r   )argskwargss     r   _dummy_contextr$   $   s      	EEEEEr   c                      t           S )zGet current event loop object._current_loopr   r   r   r   r   )   s    r   c                 
    | a | S )z"Set the current event loop object.r&   )loops    r   r   r   .   s     MKr   c            
       F   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"e#e$e%e&e'e(e)eeef
d!Z*d" Z+d# Z,e-d$             Z.e	d%             Z/dS ))r   zpEvent loop object.

    Arguments:
        timer (kombu.asynchronous.Timer): Specify custom timer instance.
    Nc                 H   ||nt                      | _        i | _        i | _        t	                      | _        t	                      | _        t	                      | _        d| _        d | _	        t	                      | _
        d | _        d| _        |                                  d S )NFr   )r   timerreaderswritersseton_tickon_close_ready_running_loopconsolidateconsolidate_callbackpropagate_errors_create_poller)selfr,   s     r   __init__zHub.__init__I   s    #/UUUWW
uuee
 55$(! "r   c                 F    | j         s|                                  | j         S r   )_pollerr8   r9   s    r   pollerz
Hub.pollerc   s&    | 	"!!!|r   c                     || _         d S r   )r<   )r9   values     r   r>   z
Hub.polleri   s    r   c                 V    |                                   |                                  d S r   )closer8   r=   s    r   resetz	Hub.resetm   s'    

r   c                 p    t                      | _        | j        j        | _        | j        j        | _        d S r   )r   r<   register_register_fd
unregister_unregister_fdr=   s    r   r8   zHub._create_pollerq   s-    vv L1"l5r   c                 t    | j         0| j                                          d | _         d | _        d | _        d S d S r   )r<   rB   rF   rH   r=   s    r   _close_pollerzHub._close_pollerv   sC    <#L   DL $D"&D	 $#r   c                 :    |                      t                     d S r   )	call_soonr    r=   s    r   stopzHub.stop}   s    ()))))r   c                     d                     t          |           t          | j                  t          | j                            S )Nz<Hub@{:#x}: R:{} W:{}>)formatidlenr-   r.   r=   s    r   __repr__zHub.__repr__   s;    '..tHHc$,''T\):):
 
 	
r   r   
   r   c                    | j         }d }|r|j        rt          |          D ]}t          | j                  \  }}| n	  |             )# |$ r  t
          t          f$ r  t          $ r=}	|	j        t          j	        k    r t                              d|	d           Y d }	~	d }	~	wt          $ r'}	t                              d|	d           Y d }	~	d }	~	ww xY wt          |p||          S )NzError in timer: %rr   exc_info)r,   _queuerangenext	schedulerMemoryErrorAssertionErrorOSErrorerrnoENOMEMloggererror	Exceptionmin)
r9   	min_delay	max_delay
max_timers	propagater,   delayientryexcs
             r   fire_timerszHub.fire_timers   sL   
 	HU\ 	H:&& H H#DN33u=EHEGGGG    #^4    H H HyEL00LL!5sQLGGGGGGGG  H H HLL!5sQLGGGGGGGGH5%Iy111s$    
A C+3B##C0CCc                     	 |                      |           |                     |           d S # |                     |           w xY wr   )_unregister_discardr9   fds     r   _remove_from_loopzHub._remove_from_loop   sK    	R   MM"DMM"s	   . AFc                 (   t          |          }	 | j                            ||           |t          z  r| j        n| j        }|r!| j                            |           d ||<   d S ||f||<   d S # t          $ r | 	                    |            w xY wr   )
r
   r>   rE   r   r-   r.   r5   add
ValueErrorrr   )r9   rq   callbackflagsr"   r5   dests          r   rt   zHub.add   s    BZZ	*K  U+++
 $)4<A4<<T\D * $$R(((R#T>R  	 	 	""2&&&	s   A0 0!Bc                 N    t          |          }|                     |           d S r   )r
   rr   rp   s     r   removez
Hub.remove   s'    BZZr"""""r   c                     d| _         	 	 	 |                                  n# t          $ r Y nw xY w'	 d| _         d S # d| _         w xY w)NTr   F)r3   run_oncer   r=   s    r   run_foreverzHub.run_forever   so    	"MMOOOO   E !DMMMEDM!!!!s!   ;   ; 
-; -; 	Ac                 `    	 t          | j                   d S # t          $ r d | _        Y d S w xY wr   )rY   r)   StopIterationr4   r=   s    r   r|   zHub.run_once   s@    	OOOOO 	 	 	DJJJJ	s    --c                     t          |t                    st          ||          }| j                            |           |S r   )
isinstancer   r   r2   rt   )r9   rv   r"   s      r   rL   zHub.call_soon   s<    (H-- 	/x..H!!!r   c                 :    | j                             |||          S r   )r,   
call_afterr9   rh   rv   r"   s       r   
call_laterzHub.call_later   s    z$$UHd;;;r   c                 :    | j                             |||          S r   )r,   call_at)r9   whenrv   r"   s       r   r   zHub.call_at   s    z!!$$777r   c                 :    | j                             |||          S r   )r,   call_repeatedlyr   s       r   r   zHub.call_repeatedly   s    z))%4@@@r   c                 L    |                      ||t          t          z  |          S r   )rt   r   r   r9   fdsrv   r"   s       r   
add_readerzHub.add_reader   s    xxXtcz4888r   c                 <    |                      ||t          |          S r   )rt   r   r   s       r   
add_writerzHub.add_writer   s    xxXud333r   c                    || j         v }| j                             |          }	 |                     |           |r$|\  }}|                     ||t          |           d S d S # |r#|\  }}|                     ||t          |           w w xY wr   )r.   getrr   rt   r   )r9   rq   writableon_writecbr"   s         r   remove_readerzHub.remove_reader   s    %<##B''	.""2&&& .#DR-----. .x .#DR----.s   A" "'B	c                 8   || j         v }| j                             |          }	 |                     |           |r,|\  }}|                     ||t          t
          z  |           d S d S # |r+|\  }}|                     ||t          t
          z  |           w w xY wr   )r-   r   rr   rt   r   r   )r9   rq   readableon_readr   r"   s         r   remove_writerzHub.remove_writer   s    %,""2&&	3""2&&& 3"DRT222223 3x 3"DRT22223s   A* */Bc                 x    	 | j                             |           d S # t          t          t          f$ r Y d S w xY wr   )r>   rG   AttributeErrorKeyErrorr]   rp   s     r   rn   zHub._unregister   sL    	K""2&&&&&'2 	 	 	DD	s    99c                      fd j         D               j                                           fd j        D               j                                          j                                                                            j        D ]} |            t           j                  }t                       _        |D ]} |             d S )Nc                 :    g | ]}                     |          S r   rn   .0rq   r9   s     r   
<listcomp>zHub.close.<locals>.<listcomp>   '    555"		"		555r   c                 :    g | ]}                     |          S r   r   r   s     r   r   zHub.close.<locals>.<listcomp>   r   r   )	r-   clearr.   r5   rJ   r1   listr2   r/   )r9   r"   rv   todositems   `    r   rB   z	Hub.close   s    5555555555555555    	 	HHTNNNN T[!!ee 	 	DDFFFF	 	r   c                     t          |          }| j                            |d            | j                            |d            | j                            |           d S r   )r
   r-   popr.   r5   discardrp   s     r   ro   zHub._discard	  sZ    BZZT"""T"""  $$$$$r   c                 B    t                               d||d           d S )Nz Callback %r raised exception: %rr   rU   )r`   ra   )r9   rv   rk   s      r   on_callback_errorzHub.on_callback_error  s0    .# 	 	
 	
 	
 	
 	
r   c              #   6  K   | j         | j        }}| j        j        }| j        }| j        }| j        j        }| j        }| j	        }| j
        }| j        }	 | j        }t                      | _        |D ]} |             |D ]}|r
 |             |r ||          nd}|s|rg }	  ||          }n# t          $ r Y d S w xY w|pdD ]\  }}d}||v r+|                    |          |                    |           7d x}}||z  r-	 ||         \  }}n}# |$ r |                     |           Y iw xY w||	z  r-	 ||         \  }}nK# |$ r |                     |           Y w xY w||
z  rd}n#t&                              t*          ||           d}|r?	 |                    |          p|                    |          \  }}n# t,          $ r Y nw xY w||                     |           $t/          ||          rc	  ||           B# t0          $ r,} | j        t2          j        k    r  ||           Y d } ~ sd } ~ w|$ r Y ~t6          $ r  ||            w xY w	  ||  # |$ r Y w xY w|r ||           n | ||d                     d V  G)Nr   )rg   r   FTg?)r-   r.   r>   r   rl   rz   r,   rW   r5   r6   r0   r7   r2   r/   ru   r   appendr   r   r`   infoW_UNKNOWN_EVENT	TypeErrorr   r]   r^   EBADFrb   )!r9   	generatorr   rc   rY   r   r   r   r   r   r   r-   r.   r   rl   
hub_remove	scheduledr5   r6   r0   rg   todotick_callbackr   poll_timeoutto_consolidateeventsrq   eventgeneral_errorr   cbargsrk   s!                                    r   create_loopzHub.create_loop  s       <{&[
J%	&#8,)	P	;D%%DK!(       DFFF?HO;;;;;;aL B.' B.!#!T,//FF!   FF "(2 5! 5!IB$)M[((#KKOO3&--b111 "&&Bt| -%)0JB' % % % ..r222$H%  
-%)0JB' % % % ..r222$H%  -(,OUB???(,$ !!*1++b// +:*1++b// 'B( ! ! ! D! zB !"i00 !
" DHHHH& + + +"yEK77 %&JrNNNNNNNN, ! ! ! D( " " "&JrNNN!"!BKKK$ ! ! ! D!! 9((888 cc,,,---EEEaP	sx   &B2 2
C ?C DD10D1:EE#"E#-G
GG<H		
I!H::III&&I/.I/c                 $    ddl m}  ||           S )Nr   )repr_active)debugr   )r9   r   s     r   r   zHub.repr_activet  s$    &&&&&&{4   r   c                 *    ddl m}  || |pg           S )Nr   )repr_events)r   r   )r9   r   r   s      r   r   zHub.repr_eventsx  s*    &&&&&&{42...r   c                 *    t          | j                  S r   )iterr,   r=   s    r   rZ   zHub.scheduler|  s    DJr   c                 P    | j         |                                 | _         | j         S r   )r4   r   r=   s    r   r)   zHub.loop  s%    :))++DJzr   r   )r   rS   rS   r   )r   F)0r   r   r   r   r   r   r   r1   r:   propertyr>   setterrC   r8   rJ   rM   rR   rl   rr   rt   rz   r}   r|   rL   r   r   r   r   r   r   r   rn   rB   ro   r   r   r   rc   rY   r   r   r   r   r   r   r   rZ   r)   r   r   r   r   r   5   s|         D E C H   4   X
 ]  ]  6 6 6
' ' '* * *
 
 

 AC 2 2 2 2.  * * * *# # #	" 	" 	"    < < <8 8 8A A A9 9 94 4 4. . .3 3 3    (% % %
 
 
 (u#D}%D3^ ^ ^ ^@! ! !/ / /     _    X  r   r   )'r   r^   
contextlibr   queuer   timer   typesr   r   viner   r   	kombu.logr	   kombu.utils.compatr
   kombu.utils.eventior   r   r   r   kombu.utils.objectsr   r,   r   __all__r   r`   r'   r   BaseExceptionr   r    r$   r   r   r   r   r   r   <module>r      s        % % % % % %             , , , , , , " " " " " " " "             % % % % % % 6 6 6 6 6 6 6 6 6 6 6 6 / / / / / /      
5	H		
         =         
 
 
  
  O O O O O O O O O Or   