o
    U˟i                      @   s  d dl Z d dlZd dlmZ g ZejZejZeedr/e j	
ds%J dejZejZejZndd  Z ZZdZ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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d dl m!Z" dd Z#G dd de"j!Z!G dd de"j$e!Z%G d d! d!e"j&e!Z'G d"d# d#e"j(e!Z)G d$d% d%e"j*e!Z+G d&d' d'e"j,e!Z-G d(d) d)e"j.e!Z/G d*d+ d+e"j0e!Z1G d,d- d-e"j2e!Z3e3e4 d.< G d/d0 d0e5Z6G d1d2 d2e"j7e!Z8G d3d4 d4e"j9e!Z:dS )5    N)	_corecffivfd_openwinz$vfd functions only needed on windowsc                 C   s   | S N )fdr   r   \/var/www/apps/myagent/mysuperagent/venv/lib/python3.10/site-packages/gevent/libev/watcher.py<lambda>   s    r	   r   READWRITE_IOFDSETPERIODICSIGNALCHILDSTATIDLEPREPARECHECKEMBEDFORKCLEANUPASYNCCUSTOMERROR)watcherc                 C   s   t | tS r   )_baseevents_to_str_events)eventsr   r   r   _events_to_str9      r   c                       s   e Zd ZeZeZdZdZdde	j
f fdd	Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd ZeeeZdd Ze	jdd ZeeeZdd Zedd Z  ZS )r   evr   TNc                    s.   |rd| _ nd| _ tt| j||||d d S )Nr      )refpriorityargs)_flagssuperr   __init__)self_loopr#   r$   r%   	__class__r   r   r(   I   s   zwatcher.__init__c                 C      t | j| d S r   libevev_set_priority_watcherr)   r$   r   r   r   _watcher_ffi_set_priorityQ   s   z!watcher._watcher_ffi_set_priorityc                 C   s   | j | j| jg|R   d S r   )_watcher_initr1   _watcher_callback)r)   r%   r   r   r   _watcher_ffi_initT   s
   zwatcher._watcher_ffi_initc                 C   s   |  | jj| j d S r   )_watcher_startloop_ptrr1   r)   r   r   r   _watcher_ffi_startY      zwatcher._watcher_ffi_startc                 C   s*   | j d@ r| j  |  j dM  _ d S d S )N   )r&   r8   r#   r:   r   r   r   _watcher_ffi_ref\   s   

zwatcher._watcher_ffi_refc                 C   s.   | j d@ dkr| j  |  j dO  _ d S d S )N   r"   r=   )r&   r8   unrefr:   r   r   r   _watcher_ffi_unrefa   s   
zwatcher._watcher_ffi_unrefc                 C   s   | j d@  S )Nr"   )r&   r:   r   r   r   _get_refg   r    zwatcher._get_refc                 C   s   |r| j d@ s	d S | j d@ r| j  |  j dM  _ d S | j d@ r#d S |  j dO  _ | j d@ sCt| jrE| j  |  j dO  _ d S d S d S )Nr"   r=   i)r&   r8   r#   r/   ev_is_activer1   rA   r)   valuer   r   r   _set_refj   s   




zwatcher._set_refc                 C   s   t | jS r   )r/   ev_priorityr1   r:   r   r   r   _get_priority~   r    zwatcher._get_priorityc                 C   r-   r   r.   r2   r   r   r   _set_priority   s   zwatcher._set_priorityc                 G   sj   || _ |pt| _| jd@ dkr| j  |  jdO  _t| jj| j	| | jd@ s3|  jdO  _d S d S )Nr@   r"   r=      )
callback_NOARGSr%   r&   r8   rA   r/   ev_feed_eventr9   r1   )r)   reventsrL   r%   r   r   r   feed   s   


zwatcher.feedc                 C   s   t | jo	t| jS r   )boolr1   r/   ev_is_pendingr:   r   r   r   pending   s   zwatcher.pending)__name__
__module____qualname__ffi_FFIr/   _LIB_watcher_prefixr&   r   rM   r(   r3   r6   r;   r?   rB   rC   rG   propertyr#   rI   not_while_activerJ   r$   rP   rS   __classcell__r   r   r+   r   r   >   s*    


r   c                       s   e Zd ZejejB ejB Ze fddZ	dd Z
ejdd Zee
eZdd Zejd	d
 ZeeeZedd Zdd Z  ZS )ioc                    s0   t  | t|dkrttjd|f d S )NzInvalid file descriptor %r)r'   _validate_fdr/   gevent_check_fd_validOSErrorerrnoEBADF)clsr   r+   r   r   r`      s   zio._validate_fdc                 C      t | jjS r   )vfd_getr1   r   r:   r   r   r   _get_fd   r    z
io._get_fdc                 C   s:   |  | t|}t| jj | | j| j|| jj d S r   )r`   r   vfd_freer1   r   r4   r5   r   )r)   r   vfdr   r   r   _set_fd   s   
z
io._set_fdc                 C      | j jS r   )r1   r   r:   r   r   r   _get_events   s   zio._get_eventsc                 C   s   |  | j| j| jj| d S r   )r4   r1   r5   r   )r)   r   r   r   r   _set_events   s   zio._set_eventsc                 C   rf   r   )r   r1   r   r:   r   r   r   
events_str      zio.events_strc                 C   s   d| j | jf S )Nz fd=%s events=%s)r   ro   r:   r   r   r   _format   s   z
io._format)rT   rU   rV   r/   EV__IOFDSETEV_READEV_WRITE
EVENT_MASKclassmethodr`   rh   r   r\   rk   r[   r   rm   rn   r   ro   rq   r]   r   r   r+   r   r^      s    




r^   c                   @   s    e Zd Zedd Zdd ZdS )timerc                 C   rl   r   )r1   atr:   r   r   r   rx         ztimer.atc                 O   s2   t j| _z| j|g|R i | W | `d S | `w r   )r/   ev_timer_againr7   start)r)   rL   r%   kwr   r   r   again   s   ztimer.againN)rT   rU   rV   r[   rx   r}   r   r   r   r   rw      s    
rw   c                   @      e Zd ZdS )signalNrT   rU   rV   r   r   r   r   r          r   c                   @   r~   )idleNr   r   r   r   r   r      r   r   c                   @   r~   )prepareNr   r   r   r   r   r      r   r   c                   @   r~   )checkNr   r   r   r   r   r      r   r   c                   @   r~   )forkNr   r   r   r   r   r      r   r   c                   @   s    e Zd Zdd Zedd ZdS )async_c                 C   s   t | jj| j d S r   )r/   ev_async_sendr8   r9   r1   r:   r   r   r   send   r<   zasync_.sendc                 C   s   | j d uott| j S r   )r1   rQ   r/   ev_async_pendingr:   r   r   r   rS      s   zasync_.pendingN)rT   rU   rV   r   r[   rS   r   r   r   r   r      s    r   asyncc                   @   s$   e Zd ZdZdd Zdd ZeZdS )_ClosedWatcherpidrpidrstatusc                 C   s   |j | _ |j| _|j| _d S r   r   )r)   otherr   r   r   r(      s   z_ClosedWatcher.__init__c                 C   s   dS )NFr   r:   r   r   r   __bool__   s   z_ClosedWatcher.__bool__N)rT   rU   rV   	__slots__r(   r   __nonzero__r   r   r   r   r      s
    r   c                       s`   e Zd Zd Z fddZedd Zedd Zejdd Zedd	 Z	e	jd
d	 Z	  Z
S )childc                    s"   t | j}tt|   || _d S r   )r   r1   r'   r   close)r)   closed_watcherr+   r   r   r      s   

zchild.closec                 C   rl   r   )r1   r   r:   r   r   r   r      ry   z	child.pidc                 C   rl   r   r1   r   r:   r   r   r   r     ry   z
child.rpidc                 C      || j _d S r   r   rE   r   r   r   r     rp   c                 C   rl   r   r1   r   r:   r   r   r   r     ry   zchild.rstatusc                 C   r   r   r   rE   r   r   r   r     rp   )rT   rU   rV   _watcher_typer   r[   r   r   setterr   r]   r   r   r+   r   r      s    



r   c                   @   s4   e Zd Zd Zedd Zedd Zedd ZdS )statc                 C      | j jjsd S | j jS r   )r1   attrst_nlinkr:   r   r   r   r        
z	stat.attrc                 C   r   r   )r1   prevr   r:   r   r   r   r     r   z	stat.prevc                 C   rl   r   )r1   intervalr:   r   r   r   r   $  ry   zstat.intervalN)rT   rU   rV   r   r[   r   r   r   r   r   r   r   r     s    

r   );sysrc   gevent.libevr   __all__rW   libr/   hasattrplatform
startswithr   ri   rg   rM   rs   rt   rr   EV_PERIODIC	EV_SIGNALEV_CHILDEV_STATEV_IDLE
EV_PREPAREEV_CHECKEV_EMBEDEV_FORK
EV_CLEANUPEV_ASYNC	EV_CUSTOMEV_ERRORr   gevent._ffir   r   r   IoMixinr^   
TimerMixinrw   SignalMixinr   	IdleMixinr   PrepareMixinr   
CheckMixinr   	ForkMixinr   
AsyncMixinr   localsobjectr   
ChildMixinr   	StatMixinr   r   r   r   r   <module>   sZ   
Y'

