a
    ҏi$                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlZd dl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	CoroutineDict	GeneratorGenericListTypeTypeVarUnioncast)Error)ImplToApiMappingImplWrapperTSelfSyncContextManager)boundc                   @   sL   e Zd ZddddddZeeddd	Zddd
dZedddZ	dS )	EventInfoSyncBaseasyncio.Future[T]N	sync_basefuturereturnc                    s,   || _ || _t  | j fdd d S )Nc                    s      S Nswitch_g_self K/home/Claro/venv/lib/python3.9/site-packages/playwright/_impl/_sync_base.py<lambda>2       z$EventInfo.__init__.<locals>.<lambda>)
_sync_base_futuregreenlet
getcurrentadd_done_callbackselfr   r   r#   r!   r$   __init__.   s    zEventInfo.__init__r   c                 C   sN   | j  s| jj  q t| jj | j  }|r8|t	t
t| j  S r   )r(   doner'   _dispatcher_fiberr   asyncio_set_running_loop_loop	exceptionr   r   mappingZfrom_maybe_implresult)r-   r5   r#   r#   r$   value4   s    

zEventInfo.valuec                 C   s   | j   d S r   )r(   cancelr-   r#   r#   r$   _cancel>   s    zEventInfo._cancelc                 C   s
   | j  S r   )r(   r0   r:   r#   r#   r$   is_doneA   s    zEventInfo.is_done)
__name__
__module____qualname__r.   propertyr   r8   r;   boolr<   r#   r#   r#   r$   r   -   s
   	r   c                   @   sH   e Zd ZddddddZee ddd	Zee ee	dd
ddZ
dS )EventContextManagerr   r   Nr   c                 C   s   t t ||| _d S r   )r   r   _eventr,   r#   r#   r$   r.   F   s    zEventContextManager.__init__r/   c                 C   s   | j S r   )rC   r:   r#   r#   r$   	__enter__I   s    zEventContextManager.__enter__)exc_typeexc_valexc_tbr   c                 C   s   |r| j   n| j j d S r   )rC   r;   r8   )r-   rE   rF   rG   r#   r#   r$   __exit__L   s    zEventContextManager.__exit__)r=   r>   r?   r.   r   r   rD   r
   BaseExceptionr   rH   r#   r#   r#   r$   rB   E   s   rB   c                       s   e Zd Zedd fddZedddZeeeeef e	eeef f 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eee dddZ  ZS )r   N)impl_objr   c                    s    t  | |j| _|j| _d S r   )superr.   r4   r1   )r-   rJ   	__class__r#   r$   r.   Y   s    zSyncBase.__init__r/   c                 C   s
   | j  S r   )	_impl_obj__str__r:   r#   r#   r$   rO   ^   s    zSyncBase.__str__)coror   c                    s   d}| j  r|  tdt  | j |}t|dt	  t|dt
  | fdd | sx| j  qdt| j  | S )NTz4Event loop is closed! Is Playwright already stopped?Z__pw_stack__Z__pw_stack_trace__c                    s      S r   r   r   r!   r#   r$   r%   o   r&   z SyncBase._sync.<locals>.<lambda>)r4   Z	is_closedcloser   r)   r*   create_tasksetattrinspectstack	tracebackextract_stackr+   r0   r1   r   r2   r3   r7   )r-   rP   Z__tracebackhide__taskr#   r!   r$   _synca   s    
zSyncBase._sync).N)handlerr   c                 C   s   t |rt|S |S r   )callabler6   Zwrap_handler)r-   rZ   r#   r#   r$   _wrap_handleru   s    
zSyncBase._wrap_handler)eventfr   c                 C   s   | j || | dS )z9Registers the function ``f`` to the event name ``event``.N)rN   onr\   r-   r]   r^   r#   r#   r$   r_   z   s    zSyncBase.onc                 C   s   | j || | dS )zoThe same as ``self.on``, except that the listener is automatically
        removed after being called.
        N)rN   oncer\   r`   r#   r#   r$   ra   ~   s    zSyncBase.oncec                 C   s   | j || | dS )z*Removes the function ``f`` from ``event``.N)rN   remove_listenerr\   r`   r#   r#   r$   rb      s    zSyncBase.remove_listener)actionsr   c                    s   t  i g ttdfdd d d fdd}| j|  ttk rf| j  qJt	| j r~d t
tfdd	S )
N)actionr   c                    s   t d fdd}|S )Nr/   c               
      sR   z   < W n6 t yD }  z|  < |  W Y d } ~ n
d } ~ 0 0   d S r   )	Exceptionappendr   )e)rd   
exceptionsr"   resultsr#   r$   body   s     z6SyncBase._gather.<locals>.action_wrapper.<locals>.body)r   )rd   rj   )rh   r"   ri   rd   r$   action_wrapper   s    z(SyncBase._gather.<locals>.action_wrapperr/   c                     s$   D ]} t   | }|  qd S r   )r)   r   )rd   g)rl   rc   r#   r$   rX      s    zSyncBase._gather.<locals>.taskr   c                    s    |  S r   r#   rk   )ri   r#   r$   r%      r&   z"SyncBase._gather.<locals>.<lambda>)r)   r*   r   r4   rR   lenr1   r   r2   r3   listmap)r-   rc   rX   r#   )rl   rc   rh   r"   ri   r$   _gather   s    zSyncBase._gather)r=   r>   r?   r   r.   strrO   r   r   r   rY   r   r\   r_   ra   rb   r	   rq   __classcell__r#   r#   rL   r$   r   X   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                 C   s   | S r   r#   r:   r#   r#   r$   rD      s    zSyncContextManager.__enter__N)rE   rF   
_tracebackr   c                 C   s   |    d S r   )rQ   )r-   rE   rF   rt   r#   r#   r$   rH      s    zSyncContextManager.__exit__r/   c                 C   s   d S r   r#   r:   r#   r#   r$   rQ      s    zSyncContextManager.close)
r=   r>   r?   r   rD   r
   rI   r   rH   rQ   r#   r#   r#   r$   r      s   )r2   rT   rV   typesr   typingr   r   r   r   r   r   r	   r
   r   r   r   r)   Zplaywright._impl._helperr   Z%playwright._impl._impl_to_api_mappingr   r   r6   r   r   r   rB   r   r   r#   r#   r#   r$   <module>   s   4Q