
    i                      X   d dl Z d dlZd dlZd dlm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 d dlZd dlmZ d dlmZmZ  e            Z ed          Z edd	
          Z G d dee                   Z G d dee         e          Z G d de          Z G d d	e          ZdS )    N)AbstractContextManager)TracebackType)
AnyCallable	Coroutine	GeneratorGenericOptionalTypeTypeVarUnioncast)Error)ImplToApiMappingImplWrapperTSelfSyncContextManager)boundc                   F    e Zd ZddZedefd            Zdd	Zdefd
Z	dS )	EventInfo	sync_baseSyncBasefutureasyncio.Future[T]returnNc                     || _         || _        t          j                    | j                            fd           d S )Nc                 ,                                     S Nswitch_g_selfs    [/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/playwright/_impl/_sync_base.py<lambda>z$EventInfo.__init__.<locals>.<lambda>2   s         )
_sync_base_futuregreenlet
getcurrentadd_done_callback)selfr   r   r$   s      @r%   __init__zEventInfo.__init__.   sE    #$&&&&'@'@'@'@AAAAAr'   c                    | j                                         s7| j        j                                         | j                                         7t          j        | j        j                   | j                                         }|r|t          t          t                              | j                                                             S r   )r)   doner(   _dispatcher_fiberr!   asyncio_set_running_loop_loop	exceptionr   r   mappingfrom_maybe_implresult)r-   r5   s     r%   valuezEventInfo.value4   s    ,##%% 	7O-44666 ,##%% 	7!$/"7888L**,,	 	OAw..t|/B/B/D/DEEFFFr'   c                 8    | j                                          d S r   )r)   cancelr-   s    r%   _cancelzEventInfo._cancel>   s    r'   c                 4    | j                                         S r   )r)   r0   r<   s    r%   is_donezEventInfo.is_doneA   s    |  """r'   r   r   r   r   r   Nr   N)
__name__
__module____qualname__r.   propertyr   r9   r=   boolr?    r'   r%   r   r   -   s        B B B B Gq G G G XG   # # # # # # #r'   r   c                   v    e Zd ZddZdee         fdZd	eee	                  d
ee	         dee
         ddfdZdS )EventContextManagerr   r   r   r   r   Nc                 F    t          t                   ||          | _        d S r   )r   r   _event)r-   r   r   s      r%   r.   zEventContextManager.__init__F   s    l9f55r'   c                     | j         S r   )rK   r<   s    r%   	__enter__zEventContextManager.__enter__I   s
    {r'   exc_typeexc_valexc_tbc                 X    |r| j                                          d S | j         j         d S r   )rK   r=   r9   )r-   rN   rO   rP   s       r%   __exit__zEventContextManager.__exit__L   s7      	K!!!!!Kr'   r@   )rB   rC   rD   r.   r   r   rM   r
   r   BaseExceptionr   rR   rG   r'   r%   rI   rI   E   s        6 6 6 69Q<    	4./	 -(	 '		
 
	 	 	 	 	 	r'   rI   c                        e Zd Zdeddf fdZdefdZdeeeeef         e	eeef         f         defdZ
deed	ef         ef         ded
         fdZdededdfdZdededdfdZdededdfdZ xZS )r   impl_objr   Nc                 z    t                                          |           |j        | _        |j        | _        d S r   )superr.   r4   r1   )r-   rU   	__class__s     r%   r.   zSyncBase.__init__Y   s5    """08
!)!;r'   c                 4    | j                                         S r   )	_impl_obj__str__r<   s    r%   r[   zSyncBase.__str__^   s    ~%%'''r'   coroc                 t   d}| j                                         r#|                                 t          d          t	          j                    | j                             |          }t          |dt          j	        d                     t          |dt          j        d                     |                    fd           |                                s-| j                                         |                                -t!          j        | j                    |                                S )	NTz4Event loop is closed! Is Playwright already stopped?__pw_stack__r   __pw_stack_trace__
   )limitc                 ,                                     S r   r    r"   s    r%   r&   z SyncBase._sync.<locals>.<lambda>o   s     r'   )r4   	is_closedcloser   r*   r+   create_tasksetattrinspectstack	tracebackextract_stackr,   r0   r1   r!   r2   r3   r8   )r-   r\   __tracebackhide__taskr$   s       @r%   _synczSyncBase._synca   s    !:!! 	PJJLLLNOOO$&&(,
(>(>t(D(DngmA&6&6777*I,C",M,M,MNNN8888999))++ 	,"))+++ ))++ 	,!$*---{{}}r'   handler.).Nc                 X    t          |          rt                              |          S |S r   )callabler6   wrap_handler)r-   rn   s     r%   _wrap_handlerzSyncBase._wrap_handleru   s-     G 	1''000r'   eventfc                 b    | j                             ||                     |                     dS )z9Registers the function ``f`` to the event name ``event``.N)rZ   onrr   r-   rs   rt   s      r%   rv   zSyncBase.on|   s.    %!3!3A!6!677777r'   c                 b    | j                             ||                     |                     dS )zoThe same as ``self.on``, except that the listener is automatically
        removed after being called.
        N)rZ   oncerr   rw   s      r%   ry   zSyncBase.once   s0     	E4#5#5a#8#899999r'   c                 b    | j                             ||                     |                     dS )z*Removes the function ``f`` from ``event``.N)rZ   remove_listenerrr   rw   s      r%   r{   zSyncBase.remove_listener   s.    &&ud.@.@.C.CDDDDDr'   )rB   rC   rD   r   r.   strr[   r   r   r   rm   r   rr   rv   ry   r{   __classcell__)rX   s   @r%   r   r   X   sn       < < < < < < < <
( ( ( ( (Ic3m,iS#.FFG 
   (Xc3h/45	)	   8 8 8 8 8 8 8:# :# :$ : : : :ES ES ET E E E E E E E Er'   r   c                   n    e Zd ZdedefdZdeee                  dee         dee         ddfdZ	d
d	Z
dS )r   r-   r   c                     | S r   rG   r<   s    r%   rM   zSyncContextManager.__enter__   s    r'   rN   rO   
_tracebackNc                 .    |                                   d S r   )rd   )r-   rN   rO   r   s       r%   rR   zSyncContextManager.__exit__   s     	

r'   c                     d S r   rG   r<   s    r%   rd   zSyncContextManager.close   s      r'   rA   )rB   rC   rD   r   rM   r
   r   rS   r   rR   rd   rG   r'   r%   r   r      s             4./ -( ]+	
 
    !     r'   )r2   rg   ri   
contextlibr   typesr   typingr   r   r   r   r	   r
   r   r   r   r   r*   playwright._impl._helperr   %playwright._impl._impl_to_api_mappingr   r   r6   r   r   r   rI   r   r   rG   r'   r%   <module>r      s         - - - - - -                               * * * * * * O O O O O O O O



 GCLLwv1222# # # # #
 # # #0    '!*&<   &0E 0E 0E 0E 0E{ 0E 0E 0Ef! ! ! ! ! ! ! ! ! !r'   