
    g,
                     x    d dl Z d dlmZmZ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  G d d	ee      Zy)
    N)DictOptionalcast)AsyncIOEventEmitter)Channel)TargetClosedError)ErrorParsedMessagePayload)	Transportc                   x     e Zd Zdej                  deddf fdZddZddZddZ	dd	Z
dd
ZdeddfdZ xZS )JsonPipeTransportlooppipe_channelreturnNc                 l    t         |   |       t        j                  | |       d| _        || _        y )NF)super__init__r   _stop_requested_pipe_channel)selfr   r   	__class__s      P/var/www/openai/venv/lib/python3.12/site-packages/playwright/_impl/_json_pipe.pyr   zJsonPipeTransport.__init__   s2    
 	4&$)    c                 J    d| _         | j                  j                  di        y )NTclose)r   r   send_no_replyr   s    r   request_stopzJsonPipeTransport.request_stop%   s     #(("5r   c                 l    | j                   j                          | j                  j                          y N)on_error_futurecancel_stopped_futurer   s    r   disposezJsonPipeTransport.dispose)   s&    ##%##%r   c                 8   K   | j                    d {    y 7 wr    r#   r   s    r   wait_until_stoppedz$JsonPipeTransport.wait_until_stopped-        """"   c                    K   t        j                          _        dt        dd f fddt        t
           dd f fd j                  j                  dfd        j                  j                  dfd       y w)	Nmessager   c                 ^    j                   ry j                  t        t        |              y r    )r   
on_messager   r
   )r+   r   s    r   handle_messagez1JsonPipeTransport.connect.<locals>.handle_message3   s#    ##OOD!5w?@r   reasonc                     j                  d|        | r$j                  j                  t        |              j                  j                  d        y )Nr   )emitr!   set_exceptionr   r#   
set_result)r/   r   s    r   handle_closedz0JsonPipeTransport.connect.<locals>.handle_closed8   sB    IIgv&$$223DV3LM  ++D1r   c                      | d         S )Nr+    )paramsr.   s    r   <lambda>z+JsonPipeTransport.connect.<locals>.<lambda>@   s    >&*;<r   closedc                 2     | j                  d            S )Nr/   )get)r7   r4   s    r   r8   z+JsonPipeTransport.connect.<locals>.<lambda>D   s    =H)=>r   )asyncioFuturer#   r   r   strr   on)r   r4   r.   s   `@@r   connectzJsonPipeTransport.connect0   s{     /6~~/?	AD 	AT 	A
	2(3- 	2D 	2 	<	
 	>	
s   A<Bc                 8   K   | j                    d {    y 7 wr    r&   r   s    r   runzJsonPipeTransport.runG   r(   r)   r+   c                 n    | j                   rt        d      | j                  j                  dd|i       y )NzPlaywright connection closedsendr+   )r   r	   r   r   )r   r+   s     r   rD   zJsonPipeTransport.sendJ   s2    677(()W1EFr   )r   N)__name__
__module____qualname__r<   AbstractEventLoopr   r   r   r$   r'   r@   rB   r   rD   __classcell__)r   s   @r   r   r      sY    *''* * 
	*6&#
.#GD GT Gr   r   )r<   typingr   r   r   pyee.asyncior   playwright._impl._connectionr   playwright._impl._errorsr   playwright._impl._helperr	   r
   playwright._impl._transportr   r   r6   r   r   <module>rP      s0     ' ' , 0 6 @ 13G+Y 3Gr   