
    `ju                         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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_capture_stack_trace)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        U/tmp/sma-radar-test-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   r1   r   s      r   r   zDisposableStub.__init__1   s&    
 &\
!'!9r   c                 >   K   |                                   d {V  d S r   )r3   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   r9   s     r   	__aexit__zDisposableStub.__aexit__@   r#   r   c                     | S r   r&   r!   s    r   	__enter__zDisposableStub.__enter__C   s    r   c                 T    |                      |                                            d S r   )_syncr   r;   s     r   __exit__zDisposableStub.__exit__F   s"    

4<<>>"""""r   coroc                 h   d}| j                                         r#|                                 t          d          t	          j                    | j                             |          }t          |dt                                 t          |dt          j
        d                     |                    fd           |                                s-| j                                         |                                -t          j        | j                    |                                S )NTz4Event loop is closed! Is Playwright already stopped?__pw_stack____pw_stack_trace__
   )limitc                 ,                                     S r   )switch)_g_selfs    r   <lambda>z&DisposableStub._sync.<locals>.<lambda>V   s     r   )r4   	is_closedr"   r   greenlet
getcurrentcreate_tasksetattrr   	tracebackextract_stackadd_done_callbackdoner5   rI   asyncio_set_running_loopresult)r   rB   __tracebackhide__taskrK   s       @r   r@   zDisposableStub._syncI   s    :!! 	PJJLLLNOOO$&&z%%d++ ""	
 	
 	

 	*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.close\   r#   r   c                     dS r%   r&   r!   s    r   r'   zDisposableStub.__repr___   r(   r   r)   )r   r0   )r*   r+   r,   r   r   r   r   r   r8   objectr<   r>   rA   r@   r"   r-   r'   r&   r   r   r0   r0   0   s#       :R401: : 
	: : : :! ! ! !   V        #f # # # # #& V    &   #      r   r0   )rV   rR   typingr   r   r   rN   playwright._impl._connectionr   r   playwright._impl._errorsr   r	   r   r0   r&   r   r   <module>ra      s         , , , , , , , , , ,  K K K K K K K K B B B B B B B B       .0 0 0 0 0 0 0 0 0 0r   