
    'j9                         d dl Z d dlZd dlZd dlmZmZmZ d dlZd dlm	Z	 d dl
mZmZ  G d de	          Z G d d          ZdS )	    N)	AwaitableCallableDict)ChannelOwner)Erroris_target_closed_errorc            
       P     e Zd Zdededededdf
 fdZddZdd	Zdefd
Z	 xZ
S )
DisposableparenttypeguidinitializerreturnNc                 P    t                                          ||||           d S N)super__init__)selfr   r   r   r   	__class__s        `/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/playwright/_impl/_disposable.pyr   zDisposable.__init__   s)     	t[99999    c                    K   	 | j                             dd            d {V  d S # t          $ r}t          |          s|Y d }~d S d }~ww xY w)Ndispose)_channelsend	Exceptionr   )r   es     r   r   zDisposable.dispose    s      	-$$            	 	 	)!,,      	s   !' 
AAAc                 >   K   |                                   d {V  d S r   r   r   s    r   closezDisposable.close*   ,      llnnr   c                     dS Nz<Disposable> r    s    r   __repr__zDisposable.__repr__-       ~r   r   N)__name__
__module____qualname__r   strr   r   r   r!   r&   __classcell__)r   s   @r   r
   r
      s        :":*-:58:GK:	: : : : : :
      #        r   r
   c                       e Zd Zdeg ed         f         deddfdZddZddZde	ddfd	Z
dd
Zde	ddfdZde	de	fdZddZdefdZdS )DisposableStub
dispose_fnNr   r   c                 D    || _         |j        | _        |j        | _        d S r   )_dispose_fn_loop_dispatcher_fiber)r   r0   r   s      r   r   zDisposableStub.__init__2   s&    
 &\
!'!9r   c                 >   K   |                                   d {V  d S r   )r2   r    s    r   r   zDisposableStub.dispose;   s0                 r   c                 
   K   | S r   r%   r    s    r   
__aenter__zDisposableStub.__aenter__>   s      r   argsc                 >   K   |                                   d {V  d S r   r   r   r8   s     r   	__aexit__zDisposableStub.__aexit__A   r"   r   c                     | S r   r%   r    s    r   	__enter__zDisposableStub.__enter__D   s    r   c                 T    |                      |                                            d S r   )_syncr   r:   s     r   __exit__zDisposableStub.__exit__G   s"    

4<<>>"""""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   )switch)_g_selfs    r   <lambda>z&DisposableStub._sync.<locals>.<lambda>S   s     r   )r3   	is_closedr!   r   greenlet
getcurrentcreate_tasksetattrinspectstack	tracebackextract_stackadd_done_callbackdoner4   rH   asyncio_set_running_loopresult)r   rA   __tracebackhide__taskrJ   s       @r   r?   zDisposableStub._syncJ   s    :!! 	PJJLLLNOOO$&&z%%d++ngmA&6&6777*I,C",M,M,MNNN8888999))++ 	,"))+++ ))++ 	,!$*---{{}}r   c                 >   K   |                                   d {V  d S r   r   r    s    r   r!   zDisposableStub.closeY   r"   r   c                     dS r$   r%   r    s    r   r&   zDisposableStub.__repr__\   r'   r   r(   )r   r/   )r)   r*   r+   r   r   r   r   r   r7   objectr;   r=   r@   r?   r!   r,   r&   r%   r   r   r/   r/   1   s#       :R401: : 
	: : : :! ! ! !   V        #f # # # # #& V       #      r   r/   )rW   rQ   rS   typingr   r   r   rM   playwright._impl._connectionr   playwright._impl._errorsr   r   r
   r/   r%   r   r   <module>rb      s          , , , , , , , , , ,  5 5 5 5 5 5 B B B B B B B B       ., , , , , , , , , ,r   