a
    ҏiU                     @   sb   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ G dd	 d	ZdS )
    N)Any)
Connection)compute_driver_executable)create_remote_object)PipeTransport)
Playwrightc                   @   sF   e Zd ZddddZedddZedddZedd	d
dZdS )PlaywrightContextManagerN)returnc                 C   s   |  d| _ d S )NF)_exit_was_calledself r   U/home/Claro/venv/lib/python3.9/site-packages/playwright/async_api/_context_manager.py__init__   s    z!PlaywrightContextManager.__init__c                    s   t  }td tt|t || _|| j  | jj	}t j
| jjj|ht jdI d H \}}| sl|  ttt| }| j|_|S )N)Zreturn_when)asyncioZget_running_loopr   r   r   r   _connectionZcreate_taskrunplaywright_futurewaitZ
_transportZon_error_futureZFIRST_COMPLETEDdonecancelAsyncPlaywrightnextiterresult	__aexit__stop)r   Zloopr   r   _Z
playwrightr   r   r   
__aenter__   s$    
z#PlaywrightContextManager.__aenter__c                    s   |   I d H S )N)r   r   r   r   r   start3   s    zPlaywrightContextManager.start)argsr	   c                    s$   | j r
d S d| _ | j I d H  d S )NT)r
   r   Z
stop_async)r   r    r   r   r   r   6   s    z"PlaywrightContextManager.__aexit__)	__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r      s   r   )r   typingr   Zplaywright._impl._connectionr   Zplaywright._impl._driverr   Z playwright._impl._object_factoryr   Zplaywright._impl._transportr   Zplaywright.async_api._generatedr   r   r   r   r   r   r   <module>   s   