a
    ҏi                     @   s   d dl Z d dlmZ d dlmZmZmZmZmZ d dl	m
Z
mZ e
 ZedZedddZG d	d
 d
ee ZG dd dee ZG dd deZG dd deZdS )    N)TracebackType)AnyCallableGenericTypeTypeVar)ImplToApiMappingImplWrapperTSelfAsyncContextManager)boundc                   @   sJ   e Zd ZdddddZeedddZddd	d
ZedddZ	dS )AsyncEventInfoasyncio.Future[T]Nfuturereturnc                 C   s
   || _ d S N)_futureselfr    r   L/home/Claro/venv/lib/python3.9/site-packages/playwright/_impl/_async_base.py__init__   s    zAsyncEventInfo.__init__r   c                    s   t | jI d H S r   )mappingZfrom_maybe_implr   r   r   r   r   value    s    zAsyncEventInfo.valuec                 C   s   | j   d S r   )r   cancelr   r   r   r   _cancel$   s    zAsyncEventInfo._cancelc                 C   s
   | j  S r   )r   doner   r   r   r   is_done'   s    zAsyncEventInfo.is_done)
__name__
__module____qualname__r   propertyr
   r   r   boolr!   r   r   r   r   r      s
   r   c                   @   sF   e Zd ZdddddZee dddZee ee	dd	d
dZ
dS )AsyncEventContextManagerr   Nr   c                 C   s   t t || _d S r   )r   r
   _eventr   r   r   r   r   ,   s    z!AsyncEventContextManager.__init__r   c                    s   | j S r   )r(   r   r   r   r   
__aenter__/   s    z#AsyncEventContextManager.__aenter__)exc_typeexc_valexc_tbr   c                    s"   |r| j   n| j jI d H  d S r   )r(   r   r   )r   r*   r+   r,   r   r   r   	__aexit__2   s    z"AsyncEventContextManager.__aexit__)r"   r#   r$   r   r   r
   r)   r   BaseExceptionr   r-   r   r   r   r   r'   +   s   r'   c                       s|   e Zd Zedd fddZedddZeed d	d
dZeeddddZ	eeddddZ
eeddddZ  ZS )	AsyncBaseN)impl_objr   c                    s   t  | |j| _d S r   )superr   Z_loop)r   r0   	__class__r   r   r   ?   s    zAsyncBase.__init__r   c                 C   s
   | j  S r   )	_impl_obj__str__r   r   r   r   r5   C   s    zAsyncBase.__str__).N)handlerr   c                 C   s   t |rt|S |S r   )callabler   Zwrap_handler)r   r6   r   r   r   _wrap_handlerF   s    
zAsyncBase._wrap_handler)eventfr   c                 C   s   | j || | dS )z9Registers the function ``f`` to the event name ``event``.N)r4   onr8   r   r9   r:   r   r   r   r;   K   s    zAsyncBase.onc                 C   s   | j || | dS )zoThe same as ``self.on``, except that the listener is automatically
        removed after being called.
        N)r4   oncer8   r<   r   r   r   r=   O   s    zAsyncBase.oncec                 C   s   | j || | dS )z*Removes the function ``f`` from ``event``.N)r4   remove_listenerr8   r<   r   r   r   r>   U   s    zAsyncBase.remove_listener)r"   r#   r$   r   r   strr5   r   r8   r;   r=   r>   __classcell__r   r   r2   r   r/   >   s   r/   c                   @   sB   e Zd ZeedddZee eeddddZddd	d
Z	dS )r   )r   r   c                    s   | S r   r   r   r   r   r   r)   [   s    zAsyncContextManager.__aenter__N)r*   r+   	tracebackr   c                    s   |   I d H  d S r   )close)r   r*   r+   rA   r   r   r   r-   ^   s    zAsyncContextManager.__aexit__r   c                    s   d S r   r   r   r   r   r   rB   f   s    zAsyncContextManager.close)
r"   r#   r$   r   r)   r   r.   r   r-   rB   r   r   r   r   r   Z   s   )Zasynciotypesr   typingr   r   r   r   r   Z%playwright._impl._impl_to_api_mappingr   r	   r   r
   r   r   r'   r/   r   r   r   r   r   <module>   s   