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   