o
    %h8
                     @   sr   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	 d	eeZdS )
    N)DictOptionalcast)AsyncIOEventEmitter)Channel)TargetClosedError)ErrorParsedMessagePayload)	Transportc                       sp   e Zd Zdejdeddf fddZdddZdd	d
ZdddZ	dddZ
dddZdeddfddZ  ZS )JsonPipeTransportlooppipe_channelreturnNc                    s(   t  | t| | d| _|| _d S )NF)super__init__r
   _stop_requested_pipe_channel)selfr   r   	__class__ O/var/www/html/myenv/lib/python3.10/site-packages/playwright/_impl/_json_pipe.pyr      s   
zJsonPipeTransport.__init__c                 C   s   d| _ | jdd i  d S )NTclose)r   r   send_no_replyr   r   r   r   request_stop%   s   zJsonPipeTransport.request_stopc                 C   s   | j   | j  d S N)on_error_futurecancel_stopped_futurer   r   r   r   dispose)   s   
zJsonPipeTransport.disposec                       | j I d H  d S r   r   r   r   r   r   wait_until_stopped-      z$JsonPipeTransport.wait_until_stoppedc                    sl   t  _dtdd ffdddtt dd ffdd jdfdd	 jd
 fdd	 d S )Nmessager   c                    s    j rd S  tt|  d S r   )r   
on_messager   r	   )r%   r   r   r   handle_message3   s   z1JsonPipeTransport.connect.<locals>.handle_messagereasonc                    s0     d|  | r jt|   jd  d S )Nr   )emitr   set_exceptionr   r   
set_result)r(   r   r   r   handle_closed8   s   z0JsonPipeTransport.connect.<locals>.handle_closedc                    s    | d S )Nr%   r   params)r'   r   r   <lambda>@   s    z+JsonPipeTransport.connect.<locals>.<lambda>closedc                    s    |  dS )Nr(   )getr-   )r,   r   r   r/   D   s    )asyncioFuturer   r   r   strr   onr   r   )r,   r'   r   r   connect0   s   


zJsonPipeTransport.connectc                    r!   r   r"   r   r   r   r   runG   r$   zJsonPipeTransport.runr%   c                 C   s&   | j rtd| jdd d|i d S )NzPlaywright connection closedsendr%   )r   r   r   r   )r   r%   r   r   r   r8   J   s   zJsonPipeTransport.send)r   N)__name__
__module____qualname__r2   AbstractEventLoopr   r   r   r    r#   r6   r7   r   r8   __classcell__r   r   r   r   r      s    





r   )r2   typingr   r   r   pyee.asyncior   playwright._impl._connectionr   playwright._impl._errorsr   playwright._impl._helperr   r	   playwright._impl._transportr
   r   r   r   r   r   <module>   s   