
    h5                        d dl mZmZ d dlZg dZd dlmZ d dlmZ d dl	m
Z
 e
j                  Ze
j                  Z eed      rGej                  j!                  d      sJ d	       ej"                  Zej$                  Zej&                  Znd
 xZxZZej)                          d dlmZ d dlmZ  G d de      Z eeee      Zej4                  Zej8                  Zej<                  Zej@                  Z!ejD                  Z#ejH                  Z%ejL                  Z'ejP                  Z)ejT                  Z+ejX                  Z-ej\                  Z/ej`                  Z1ejd                  Z3ejh                  Z5ejl                  Z7ejp                  Z9ejt                  Z;ejx                  Z=ej<                  ej@                  z  Z>ej~                  Z@ej                  ZBej                  ZDej                  ZFej                  ZHej                  ZJej                  ZLej                  ZNej                  ZPej                  ZRej                  ZTd dlmUZU eUZVd ZWd ZXej                  dfej                  dfej                  dfej                  dfej                  dfej                  dfej                  dfej                  dfej                  dfej                  dfej                  dfgZ\ e]d e\D              Z^d Z_ej                  d    dk\  reaebfZcedfZend dlfZfefj                  fZcedefj                  fZed  Zhd! Zid" Zjd# Zkd$ Zld% Zmd& Znd d'lmoZo d d(l	mpZq eqj                  Zr ee       G d) d*eo             Zsej                         d+        Zud, Zvdawej                  Zxy)-    )absolute_importprint_functionN)get_versionget_header_versionsupported_backendsrecommended_backendsembeddable_backendstimeloop)implementer)ILoop)	_corecffivfd_openwinz$vfd functions only needed on windowsc                     | S N )fds    O/var/www/html/engine/venv/lib/python3.12/site-packages/gevent/libev/corecffi.py<lambda>r   "   s    r     )AbstractCallbacks)assign_standard_callbacksc                   $    e Zd Zd Zd Zd Zd Zy)
_Callbacksc                 <    |\  }}}t        j                  | |       y r   )r   python_check_callback)selfargs_loopwatcher_ptr_eventss        r   r   z _Callbacks.python_check_callback:   s      '+#{G//kBr   c                     |<|j                   j                  }d|v r|d   S d|v rt        |d         dk(  r|d   d   S t        j                  | |      S )Nr!   r         )tb_framef_localslenr   _find_watcher_ptr_in_traceback)r   tbls      r   r)   z)_Callbacks._find_watcher_ptr_in_tracebackD   s`    >$$A!''{s1V9~2y|# ??bIIr   c                 0    t        j                  | |       y r   )r   python_prepare_callback)r   	_loop_ptrr!   r"   s       r   r-   z"_Callbacks.python_prepare_callbackM   s    11$Dr   c                 d    t         j                  d|      j                  }| j                  |      S )Nzstruct ev_watcher*)fficastdatafrom_handle)r   r!   loop_handles      r   _find_loop_from_c_watcherz$_Callbacks._find_loop_from_c_watcherP   s*    hh3[AFF,,r   N)__name__
__module____qualname__r   r)   r-   r5   r   r   r   r   r   7   s    CJE-r   r   )EVENTSc                  X    dt         j                         t         j                         fz  S Nzlibev-%d.%02d)libevev_version_majorev_version_minorr   r   r   r   r   ~   s$    e4468N8N8PQQQr   c                  H    dt         j                  t         j                  fz  S r;   )r<   EV_VERSION_MAJOREV_VERSION_MINORr   r   r   r   r      s    e44e6L6LMMMr   portkqueuelinux_iouring	linux_aioepollpollselectnoenv	forkchecksignalfd	nosigmaskc              #   *   K   | ]  \  }}||f  y wr   r   ).0flagstrings      r   	<genexpr>rQ      s     B$vtnBs   c                     g }t         D ]%  \  }}| |z  r|j                  |       | | z  } | r% n | r|j                  |        |S r   )_flagsappend)flagsresultcodevalues       r   _flags_to_listrY      sT    F e4<MM% $ eMr   r$   c                 z   | syt        | t              r| S d}	 t        | t              r| j                  d      } | D ]/  }|j	                         j                         }|s$|t        |   z  }1 	 |S # t        $ r@}t        d|ddj                  t        t        j                                           d }~ww xY w)Nr   ,zInvalid backend or flag: z
Possible values: z, )
isinstanceinteger_types
basestringsplitstriplower_flags_str2intKeyError
ValueErrorjoinsortedkeys)rU   rV   rX   exs       r   _flags_to_intri      s    %'F~eZ(KK$E 	0EKKM'')E.//	0 M  ~rSWS\S\]cdrdwdwdy]zS{|}}~s   AA1  A1 1	B::;B55B:c                 N    t        | t              rt        |       S t        |       S r   )r\   r]   hexstr)rO   s    r   _str_hexrm      s     $&4yt9r   c                 *   g }| t         j                  z  } | sy | t         j                  z  st        d| z        | t         j	                         z  s>t        |       D cg c]  }t        |       }}t        ddj                  |      z        y c c}w )NzInvalid value for backend: 0x%xzUnsupported backend: %s|)r<   EVBACKEND_MASKEVBACKEND_ALLrd   ev_supported_backendsrY   rm   re   )rU   as_listxs      r   _check_flagsru      s    G	U!!!E5&&&:UBCC5..00(6u(=>18A;>>2SXXg5FFGG 1>s   Bc                  <    t        t        j                               S r   )rY   r<   rr   r   r   r   r   r      s    %55788r   c                  <    t        t        j                               S r   )rY   r<   ev_recommended_backendsr   r   r   r   r      s    %779::r   c                  <    t        t        j                               S r   )rY   r<   ev_embeddable_backendsr   r   r   r	   r	      s    %66899r   c                  *    t         j                         S r   )r<   ev_timer   r   r   r
   r
      s    ==?r   )AbstractLoop)watcherc                       e Zd ZdZdZdZdZdZd)dZd Z	d Z
d	 Zd
 Zd Zd Z fdZd Z fdZd Zd Zed        Zed        Z fdZd*dZd Zd Zd Zej:                  fdZd Zd Z d Z!d Z"ed        Z#ed        Z$ed         Z%ed!        Z&ed"        Z'd# Z(e)jT                  d$k7  rd% Z+d& Z,d' Z-ed(        Z. xZ/S )+r   gh㈵>Nzstruct ev_check *zstruct ev_prepare *zstruct ev_timer *c                     t        j                  | t        t        t        ||       t        t        j                  | j                              | _        y r   )	r}   __init__r0   r<   	_watchersboolev_is_default_loop_ptr_default)r   rU   defaults      r   r   zloop.__init__  s5    dC	5'JU55dii@Ar   c                    t        |      }t        |       |t        j                  z  }|t        j                  z  }|d}|r&t        j                  |      }|s5t        d|d      t        j                  |      }|st        d|d      |st        t        | j                         t        j                  ||       |S )NTzev_default_loop(z) failedzev_loop_new()ri   ru   r<   EVFLAG_NOENVEVFLAG_FORKCHECKgevent_ev_default_loopSystemErrorev_loop_newSYSERR_CALLBACKset_syserr_cb_handle_syserrev_set_userdata)r   rU   r   c_flagsptrs        r   
_init_loopzloop._init_loop  s    &W5%%%5)))?G..w7C!'"LMM##G,C!g"HIIo-$--. 	c3'
r   c                 
   t         j                  | j                  t         j                         | j                  | j                  _        t         j                  | j                  | j                         | j                          y r   )	r<   ev_check_init_checkr   _handle_to_selfr2   ev_check_startr   unrefr   s    r   _init_and_start_checkzloop._init_and_start_check  sO    DKK)D)DE//TYY4

r   c                     t         j                  | j                  t         j                         t         j	                  | j
                  | j                         | j                          y r   )r<   ev_prepare_init_preparer-   ev_prepare_startr   r   r   s    r   _init_and_start_preparezloop._init_and_start_prepare!  s=    dmmU-J-JKtyy$--8

r   c                 d    t         j                  | j                  t         j                  dd       y )Ng        )r<   ev_timer_init_timer0gevent_noopr   s    r   _init_callback_timerzloop._init_callback_timer&  s     DLL%*;*;S#Fr   c                 X    t         j                  | j                  | j                         y r   )r<   ev_timer_stopr   r   r   s    r   _stop_callback_timerzloop._stop_callback_timer)  s    DIIt||4r   c                 X    t         j                  | j                  | j                         y r   )r<   ev_timer_startr   r   r   s    r   _start_callback_timerzloop._start_callback_timer,  s    TYY5r   c                    t         t        |           t        j	                  | j
                        r:| j                          t        j                  | j                  | j
                         t        j	                  | j                        r:| j                          t        j                  | j                  | j                         t        j	                  | j                        r t        j                  | j                         y y r   )superr   _stop_aux_watchersr<   ev_is_activer   refev_prepare_stopr   r   ev_check_stopr   r   r   	__class__s    r   r   zloop._stop_aux_watchers/  s    dD,.dmm,HHJ!!$))T]];dkk*HHJ		4;;7dll+- ,r   c                 $    | j                          y r   )r   r   s    r   _setup_for_run_callbackzloop._setup_for_run_callback:  s    
 	
r   c                     | j                   r9t        t        |           t	               d   | j
                  k(  rt        d        y y y )Nr   )r   r   r   destroyglobalsr   r   r   s    r   r   zloop.destroyA  s@    99$%'y*+t/B/BBd# C r   c                 ,    t         j                  |      S r   )r<   ev_userdatar   r   s     r   _can_destroy_loopzloop._can_destroy_loopI  s      %%r   c                 <   t         j                  |t        j                         t         j	                  |       t         j                  | j                         t         j                  | j                         t         j                  | j                         | `| `| `
y r   )r<   r   r0   NULLev_loop_destroygevent_zero_preparer   gevent_zero_checkr   gevent_zero_timerr   r   s     r   _destroy_loopzloop._destroy_loopM  si    c388,c"!!$--0,-MKLr   c                 "    t         j                  S r   )r<   	EV_MAXPRIr   s    r   MAXPRIzloop.MAXPRI[      r   c                 "    t         j                  S r   )r<   	EV_MINPRIr   s    r   MINPRIzloop.MINPRI_  r   r   c                     t         t        |   ||||       t        j	                  | j
                  t        j                         y r   )r   r   _default_handle_errorr<   ev_breakr   EVBREAK_ONE)r   contexttyperX   r*   r   s        r   r   zloop._default_handle_errorc  s0    dD/ubItyy%"3"34r   c                     d}|r|t         j                  z  }|r|t         j                  z  }t         j                  | j                  |       y Nr   )r<   EVRUN_NOWAIT
EVRUN_ONCEev_runr   )r   nowaitoncerU   s       r   runzloop.rung  s?    U'''EU%%%ETYY&r   c                 B    t         j                  | j                         y r   )r<   ev_loop_forkr   r   s    r   reinitzloop.reinitp  s    499%r   c                 B    t         j                  | j                         y r   )r<   ev_refr   r   s    r   r   zloop.refs  s    TYYr   c                 B    t         j                  | j                         y r   )r<   ev_unrefr   r   s    r   r   z
loop.unrefv  s    tyy!r   c                 D    t         j                  | j                  |       y r   )r<   r   r   )r   hows     r   break_zloop.break_y  s    tyy#&r   c                 B    t         j                  | j                         y r   )r<   	ev_verifyr   r   s    r   verifyzloop.verify|  s    		"r   c                 @    t         j                  | j                        S r   )r<   ev_nowr   r   s    r   nowzloop.now  s    ||DII&&r   c                 B    t         j                  | j                         y r   )r<   ev_now_updater   r   s    r   
update_nowzloop.update_now  s    DII&r   c                 h    d| j                   j                  t        |       | j                         fz  S )Nz<%s at 0x%x %s>)r   r6   id_formatr   s    r   __repr__zloop.__repr__  s(     DNN$;$;RXt||~#VVVr   c                 @    t         j                  | j                        S r   )r<   ev_iterationr   r   s    r   	iterationzloop.iteration  s    !!$)),,r   c                 @    t         j                  | j                        S r   )r<   ev_depthr   r   s    r   depthz
loop.depth  s    ~~dii((r   c                 @    t         j                  | j                        S r   )r<   
ev_backendr   r   s    r   backend_intzloop.backend_int  s    		**r   c                 r    t         j                  | j                        }t        D ]  \  }}||k(  s|c S  |S r   )r<   r   r   rS   )r   backendkeyrX   s       r   r   zloop.backend  s<    ""499-  	JCg~	 r   c                 @    t         j                  | j                        S r   )r<   ev_pending_countr   r   s    r   
pendingcntzloop.pendingcnt  s    %%dii00r   c                     t         j                  | j                        }t         j                  | j                  |d       t         j                  | j                        }||kD  S )Ni  )r<   r   r   ev_feed_fd_event)r   r   pending_beforepending_afters       r   
closing_fdzloop.closing_fd  sK    //		:tyy"f5..tyy9~--r   win32c                 ,    t         j                          y r   )r<   gevent_install_sigchld_handlerr   s    r   install_sigchldzloop.install_sigchld  s    002r   c                 ,    t         j                          y r   )r<   gevent_reset_sigchld_handlerr   s    r   reset_sigchldzloop.reset_sigchld  s    ..0r   c                 f    | j                   r%t        r| j                   j                  }|dk\  r|S y y y r   )r   LIBEV_EMBED
backend_fd)r   r   s     r   filenozloop.fileno  s4    99 %%BQw	 	 %9r   c                 j    | j                   st        d      t        r| j                   j                  S y)Nzoperation on destroyed loop)r   rd   r  	activecntr   s    r   r  zloop.activecnt  s+    yy:;;99&&&r   )NN)FF)0r6   r7   r8   approx_timer_resolutionerror_handler_CHECK_POINTER_PREPARE_POINTER_TIMER_POINTERr   r   r   r   r   r   r   r   r   r   r   r   propertyr   r   r   r   r   r   r   r<   r   r   r   r   r   r   r   r   r   r   r   r  sysplatformr	  r  r  r  __classcell__)r   s   @r   r   r      s^    &M(N,(NB,
G56	.$&    5'& " ** '#''W - - ) ) + +   1 1. ||w	3	1  r   r   c                     	 t         j                  |       } t        | t         j                         y #  t	        d         xY wr   )r0   rP   r   errnor   )msgs    r   
_syserr_cbr     s4    jjoSYY'ds	   /2 A c                     | &t         j                  t        j                         d ay t        |       r&t         j                  t         j                         | ay t        d|       )NzExpected callable or None, got )r<   ev_set_syserr_cbr0   r   r   callabler   	TypeError)callbacks    r   r   r     sN    sxx(	(	u//0"xJKKr   )y
__future__r   r   r  __all__zope.interfacer   gevent._interfacesr   gevent.libevr   r0   libr<   hasattrr  
startswithr   vfd_freevfd_getgevent_set_ev_allocgevent._ffi.loopr   r   r   
_callbacksEV_UNDEFUNDEFEV_NONENONEEV_READREADEV_WRITEWRITEEV_TIMERTIMEREV_PERIODICPERIODIC	EV_SIGNALSIGNALEV_CHILDCHILDEV_STATSTATEV_IDLEIDLE
EV_PREPAREPREPAREEV_CHECKCHECKEV_EMBEDEMBEDEV_FORKFORK
EV_CLEANUPCLEANUPEV_ASYNCASYNC	EV_CUSTOMCUSTOMEV_ERRORERROR	READWRITEr   r   r   r   EVBACKEND_PORTBACKEND_PORTEVBACKEND_KQUEUEBACKEND_KQUEUEEVBACKEND_EPOLLBACKEND_EPOLLEVBACKEND_POLLBACKEND_POLLEVBACKEND_SELECTBACKEND_SELECTr   	FORKCHECKEVFLAG_NOINOTIFY	NOINOTIFYEVFLAG_SIGNALFDSIGNALFDEVFLAG_NOSIGMASK	NOSIGMASKr9   GEVENT_CORE_EVENTSr   r   EVBACKEND_IOURINGEVBACKEND_LINUXAIOr   rS   dictrb   rY   version_infobytesrl   r^   intr]   __builtin__longri   rm   ru   r   r   r	   r
   r}   r~   r   _events_to_strr   
def_externr   r   r   r  r   r   r   <module>rt     s   7 
 ' $ "mm
5* <<""5)Q+QQ)~~H~~HmmG$11H1x'      / 6-" -: 'sE:>
 	}}}}	}}}}


}}


	MMENN*			##''%%##''""	""	  ""	 $ RN 6"
X&
o.
{+
G$
6"
X&
!
[)
J'
[)
  B6BB
 A!JFM((*J+**+M&	H9;: * .)) UP< P Pf  	L r   