
    i                         S SK r S SK Jr  S SKJr   S SKrSr " S S\ R                  5      r	\b   " S S\5      r
O
 " S	 S5      r
\	\R                  \R                  \\
\ R                  S
.rg! \ a	    S SKJr   Ndf = f)    N)queue)Event)SimpleWebSocketWSGIc                   :   ^  \ rS rSrSr/ 0 4U 4S jjrS rSrU =r$ )Thread   zt
This wrapper class provides gevent Greenlet interface that is compatible
with the standard library's Thread class.
c                 .   > [         TU ]  " U/UQ70 UD6  g N)super__init__)selftargetargskwargs	__class__s       Z/home/admin/cozy_coffee/venv/lib/python3.13/site-packages/engineio/async_drivers/gevent.pyr   Thread.__init__   s    1$1&1    c                 "    U R                  5       $ r
   )runr   s    r   _runThread._run   s    xxzr    )	__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes____classcell__r   s   @r   r   r      s     %'r 2 r   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )WebSocketWSGI   z
This wrapper class provides a gevent WebSocket interface that is
compatible with eventlet's implementation, using the simple-websocket
package.
c                    > SS K nSS Kn[        TU ]  X[        UR
                  R                  UR                  R                  S9  g )Nr   )thread_classevent_classselector_class)	gevent.eventgevent.selectorsr   r   r   eventr   	selectorsDefaultSelector)r   handlerservergeventr   s       r   r   WebSocketWSGI.__init__    s?      #GW*0)/););,2,<,<,L,L  Nr   r   )r   r   r   r   r   r   r    r!   r"   s   @r   r$   r$      s    	
		N 		Nr   r$   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
r$   +   z
This wrapper class provides a gevent WebSocket interface that is
compatible with eventlet's implementation, using the gevent-websocket
package.
c                     Xl         g r
   )app)r   r/   r0   s      r   r   r2   1   s    Hr   c                 >   SU;  a  [        S5      eUS   U l        Xl        U R                  R                  U l        U R                  R                  U l        U R                  R
                  U l        U R                  R                  U l        U R                  U 5      $ )Nzwsgi.websocketzThe gevent-websocket server is not configured appropriately. See the Deployment section of the documentation for more information.)RuntimeError_sockenvironversionpathoriginprotocolr6   )r   r:   start_responses      r   __call__WebSocketWSGI.__call__4   s    w." $I J J !!12DJ"L::--DL

DI**++DK JJ//DM88D>!r   c                 6    U R                   R                  5       $ r
   )r9   closer   s    r   rC   WebSocketWSGI.closeB   s    ::##%%r   c                 8    U R                   R                  U5      $ r
   )r9   send)r   messages     r   rF   WebSocketWSGI.sendE   s    ::??7++r   c                 6    U R                   R                  5       $ r
   )r9   receiver   s    r   waitWebSocketWSGI.waitH   s    ::%%''r   )r9   r6   r:   r=   r<   r>   r;   N)r   r   r   r   r   r   r@   rC   rF   rK   r    r   r   r   r$   r$   +   s     	
		"	&	,	(r   )threadr   queue_emptyr,   	websocketsleep)r1   r   r*   r   geventwebsocketr   ImportError&engineio.async_drivers._websocket_wsgiGreenletr   r$   JoinableQueueEmptyrP   _asyncr   r   r   <module>rX      s      K	V__ 	 "N+ N"( (D   ;;\\
I  KJKs   A. .A=<A=