
    8Cf                         d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ eeef   Zeeef   Zeeged   f   Zeg ee   f   Z G d d      Z G d d	e      Zy)
    N)Any	AwaitableCallableMutableMappingOptionalUnion)
BadRequest)TransportProtocol)WebSocketConnectionc                   Z    e Zd ZddZddZddZddZedefd       Z	de
ddfd	Zdd
Zy)MockProtocolc                     || _         t        j                         | _        | j                  j	                          t        j                         | _        y N)	transportasyncioEvent_not_pausedset	_complete)selfr   loops      Q/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/sanic/models/asgi.py__init__zMockProtocol.__init__   s6    ""==?     returnNc                 8    | j                   j                          y r   )r   clearr   s    r   pause_writingzMockProtocol.pause_writing   s     r   c                 8    | j                   j                          y r   )r   r   r   s    r   resume_writingzMockProtocol.resume_writing   s    r   c                    K   | j                   j                          | j                  j                  dddd       d {    y 7 w)Nhttp.response.bodyr   Ftypebody	more_body)r   r   r   sendr   s    r   completezMockProtocol.complete   s>     nn!!)3UK
 	
 	
s   =AA Ac                 6    | j                   j                         S r   )r   is_setr   s    r   is_completezMockProtocol.is_complete#   s    ~~$$&&r   datac                 x   K   | j                   s(| j                  j                  d|dd       d {    y y 7 w)Nr#   Tr$   )r,   r   r(   r   r-   s     r   	push_datazMockProtocol.push_data'   s?     ..%%-t$O    s   /:8:c                 T   K   | j                   j                          d {    y 7 wr   )r   waitr   s    r   drainzMockProtocol.drain-   s     ##%%%s   (&()r   MockTransportr   N)__name__
__module____qualname__r   r   r!   r)   propertyboolr,   bytesr0   r3    r   r   r   r      sI    )!
 'T ' 'E d &r   r   c                       e Zd ZU ee   ed<   dedededdfdZ	defdZ
	 dd	edeeeef      fd
ZdefdZdededefdZddZddZdefdZy)r4   	_protocolscopereceiver(   r   Nc                 J    || _         || _        || _        d | _        d | _        y r   )r?   _receive_sendr>   r   )r   r?   r@   r(   s       r   r   zMockTransport.__init__4   s'     

9=	r   c                 h    | j                   st        | | j                        | _         | j                   S r   )r>   r   r   r   s    r   get_protocolzMockTransport.get_protocol=   s%    ~~)$		:DN~~r   infoc                     |dk(  r| j                   j                  d      S |dk(  r| j                   j                  d      dv S |S )Npeernameclient
sslcontextscheme)httpswss)r?   get)r   rF   defaults      r   get_extra_infozMockTransport.get_extra_infoB   sE     :::>>(++\!::>>(+/???r   c                 L    	 | j                   S # t        $ r t        d      w xY w)NzImproper websocket connection.)_websocket_connectionAttributeErrorr	   r   s    r   get_websocket_connectionz&MockTransport.get_websocket_connectionK   s.    	?--- 	?=>>	?s    #c                 r    t        ||| j                  j                  dg             | _        | j                  S )Nsubprotocols)r   r?   rN   rR   )r   r(   r@   s      r   create_websocket_connectionz)MockTransport.create_websocket_connectionQ   s5     &9'4::>>."=&
" )))r   c                     t         r   )NotImplementedErrorr   s    r   add_taskzMockTransport.add_taskY   s    !!r   c                 B   K   | j                  |       d {    y 7 wr   )rC   r/   s     r   r(   zMockTransport.send\   s      jjs   c                 >   K   | j                          d {   S 7 wr   )rB   r   s    r   r@   zMockTransport.receivea   s     ]]_$$$s   r   r5   )r6   r7   r8   r   r   __annotations__	ASGIScopeASGIReceiveASGISendr   rE   strr   r:   rP   r   rT   rW   rZ   r(   ASGIMessager@   r<   r   r   r4   r4   1   s    %%>>)4><D>	>l  "&	%T	"	#?*= ?**'2*	*"
%{ %r   r4   )r   typingr   r   r   r   r   r   sanic.exceptionsr	   sanic.models.protocol_typesr
   "sanic.server.websockets.connectionr   ra   r^   rb   r`   r_   r   r4   r<   r   r   <module>rg      sv     L L ' 9 B 38$	S#X&[M9T?23r9[112& &B1%% 1%r   