
    i8
                         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dS )
    N)DictOptionalcast)AsyncIOEventEmitter)Channel)TargetClosedError)ErrorParsedMessagePayload)	Transportc                   n     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                     t                                          |           t          j        | |           d| _        || _        d S )NF)super__init__r   _stop_requested_pipe_channel)selfr   r   	__class__s      [/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/playwright/_impl/_json_pipe.pyr   zJsonPipeTransport.__init__   sF    
 	4&&&$)    c                 L    d| _         | j                            dd i            d S )NTclose)r   r   send_no_replyr   s    r   request_stopzJsonPipeTransport.request_stop%   s+    #(($;;;;;r   c                 j    | j                                          | j                                         d S N)on_error_futurecancel_stopped_futurer   s    r   disposezJsonPipeTransport.dispose)   s2    ##%%%##%%%%%r   c                 $   K   | j          d {V  d S r    r#   r   s    r   wait_until_stoppedz$JsonPipeTransport.wait_until_stopped-   '      """"""""""r   c                 
   K   t          j                     _        dt          dd f fddt          t
                   dd f fd j                            dfd            j                            dfd           d S )	Nmessager   c                 j    j         rd S                     t          t          |                      d S r    )r   
on_messager   r
   )r*   r   s    r   handle_messagez1JsonPipeTransport.connect.<locals>.handle_message3   s6    # OOD!5w??@@@@@r   reasonc                                          d|            | r'j                            t          |                      j                            d            d S )Nr   )emitr!   set_exceptionr   r#   
set_result)r.   r   s    r   handle_closedz0JsonPipeTransport.connect.<locals>.handle_closed8   s]    IIgv&&& N$223DV3L3LMMM ++D11111r   c                 &     | d                   S )Nr*    )paramsr-   s    r   <lambda>z+JsonPipeTransport.connect.<locals>.<lambda>@   s    >>&*;<< r   closedc                 @     |                      d                    S )Nr.   )get)r6   r3   s    r   r7   z+JsonPipeTransport.connect.<locals>.<lambda>D   s    ==H)=)=>> r   )asyncioFuturer#   r   r   strr   on)r   r3   r-   s   `@@r   connectzJsonPipeTransport.connect0   s      /6~/?/?	AD 	AT 	A 	A 	A 	A 	A 	A
	2(3- 	2D 	2 	2 	2 	2 	2 	2 	<<<<	
 	
 	
 	>>>>	
 	
 	
 	
 	
r   c                 $   K   | j          d {V  d S r    r&   r   s    r   runzJsonPipeTransport.runG   r(   r   r*   c                 n    | j         rt          d          | j                            dd d|i           d S )NzPlaywright connection closedsendr*   )r   r	   r   r   )r   r*   s     r   rC   zJsonPipeTransport.sendJ   sB     	86777((	77KLLLLLr   )r   N)__name__
__module____qualname__r;   AbstractEventLoopr   r   r   r$   r'   r?   rA   r   rC   __classcell__)r   s   @r   r   r      s        *'* * 
	* * * * * *< < < <& & & &# # # #
 
 
 
.# # # #MD MT M M M M M M M Mr   r   )r;   typingr   r   r   pyee.asyncior   playwright._impl._connectionr   playwright._impl._errorsr   playwright._impl._helperr	   r
   playwright._impl._transportr   r   r5   r   r   <module>rO      s     ' ' ' ' ' ' ' ' ' ' , , , , , , 0 0 0 0 0 0 6 6 6 6 6 6 @ @ @ @ @ @ @ @ 1 1 1 1 1 13M 3M 3M 3M 3M+Y 3M 3M 3M 3M 3Mr   