
    /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y)	    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                 *    t         |   ||||       y N)super__init__)selfr   r   r   r   	__class__s        Z/var/www/html/maxservice/venv/lib/python3.12/site-packages/playwright/_impl/_disposable.pyr   zDisposable.__init__   s     	t[9    c                    K   	 | j                   j                  dd        d {    y 7 # t        $ r}t        |      s|Y d }~y d }~ww xY ww)Ndispose)_channelsend	Exceptionr   )r   es     r   r   zDisposable.dispose    sP     	--$$    	)!, -	s6   A+ )+ A+ 	AAAAAc                 @   K   | j                          d {    y 7 wr   r   r   s    r   closezDisposable.close*        lln   c                      y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
      sF    :":*-: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y)DisposableStub
dispose_fnNr   r   c                 V    || _         |j                  | _        |j                  | _        y r   )_dispose_fn_loop_dispatcher_fiber)r   r1   r   s      r   r   zDisposableStub.__init__2   s%    
 &\\
!'!9!9r   c                 @   K   | j                          d {    y 7 wr   )r3   r    s    r   r   zDisposableStub.dispose;   s        r#   c                    K   | S wr   r&   r    s    r   
__aenter__zDisposableStub.__aenter__>   s     s   argsc                 @   K   | j                          d {    y 7 wr   r   r   r9   s     r   	__aexit__zDisposableStub.__aexit__A   r"   r#   c                     | S r   r&   r    s    r   	__enter__zDisposableStub.__enter__D   s    r   c                 B    | j                  | j                                y r   )_syncr   r;   s     r   __exit__zDisposableStub.__exit__G   s    

4<<>"r   coroc                 N   d}| j                   j                         r|j                          t        d      t	        j
                         | j                   j                  |      }t        |dt        j                  d             t        |dt        j                  d             |j                  fd       |j                         s+| j                  j                          |j                         s+t!        j"                  | j                          |j%                         S )	NTz4Event loop is closed! Is Playwright already stopped?__pw_stack__r   __pw_stack_trace__
   )limitc                 $    j                         S r   )switch)_g_selfs    r   <lambda>z&DisposableStub._sync.<locals>.<lambda>S   s     r   )r4   	is_closedr!   r   greenlet
getcurrentcreate_tasksetattrinspectstack	tracebackextract_stackadd_done_callbackdoner5   rI   asyncio_set_running_loopresult)r   rB   __tracebackhide__taskrK   s       @r   r@   zDisposableStub._syncJ   s     ::!JJLNOO$$&zz%%d+ngmmA&67*I,C,C",MN89))+""))+ ))+!!$**-{{}r   c                 @   K   | j                          d {    y 7 wr   r   r    s    r   r!   zDisposableStub.closeY   r"   r#   c                      y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   1   s    :R401: : 
	:!V  #f # #& V # r   r0   )rX   rR   rT   typingr   r   r   rN   playwright._impl._connectionr   playwright._impl._errorsr   r   r
   r0   r&   r   r   <module>rc      s5       , ,  5 B ., ,r   