
    gY                        d dl Z d dlZd dlZd dlZ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 d dlmZ d dlmZ d dlZd dlZd dlmZmZ d dlmZ d dl m!Z!m"Z"m#Z# d d	l$m%Z% erd d
l&m'Z' d dl(m)Z)  G d de      Z* G d de      Z+ G d d      Z, G d de+      Z- G d de      Z.de*defdZ/dee*   dee   fdZ0 G d de      Z1 G d de      Z2deejf                     de4de2fd Z5d!edefd"Z6d#eee7      de7fd$Z8y)%    N)Path)
TYPE_CHECKINGAnyCallableDictListMappingOptional	TypedDictUnioncast)EventEmitter)AsyncIOEventEmitter)TargetClosedErrorrewrite_error)EventGreenlet)ErrorParsedMessagePayloadparse_error)	Transport)
LocalUtils)
Playwrightc                        e Zd Zd fdZddededefdZddededefdZddededdfdZ	dede
e   d	edefd
ZddZ xZS )ChannelreturnNc                      t                    | _        |j                   _        | _         j                  d fd       d _        y )Nerrorc                 :    j                   j                  |       S N)_connection_on_event_listener_error)excselfs    Q/var/www/openai/venv/lib/python3.12/site-packages/playwright/_impl/_connection.py<lambda>z"Channel.__init__.<locals>.<lambda>9   s    T%5%5%N%Ns%S    F)super__init__r    _guid_objecton_is_internal_type)r#   
connectionobject	__class__s   `  r$   r(   zChannel.__init__4   s?    %\\
ST!&r&   methodparamsc                 z    K    j                   j                   fd j                         d {   S 7 w)Nc                  *    j                   d      S NF_inner_sendr0   r1   r#   s   r$   r%   zChannel.send.<locals>.<lambda>>   s    D$$VVU;r&   r    wrap_api_callr,   r#   r0   r1   s   ```r$   sendzChannel.send<   s6     %%33;""
 
 	
 
   /;9;c                 z    K    j                   j                   fd j                         d {   S 7 w)Nc                  *    j                   d      S NTr5   r7   s   r$   r%   z-Channel.send_return_as_dict.<locals>.<lambda>D   s    D$$VVT:r&   r8   r:   s   ```r$   send_return_as_dictzChannel.send_return_as_dictB   s6     %%33:""
 
 	
 
r<   c                 J      j                   j                   fd       y )Nc                  f    j                   j                  j                   i d      S d      S r?   )r    _send_message_to_serverr*   r7   s   r$   r%   z'Channel.send_no_reply.<locals>.<lambda>K   s1    D$$<<fFNb@Fr&   )r    wrap_api_call_syncr:   s   ```r$   send_no_replyzChannel.send_no_replyH   s    ++	
r&   return_as_dictc                   K   |i }| j                   j                  r)| j                   j                  }d | j                   _        || j                   j                  | j                  |t	        |            }t        j                  | j                   j                  j                  |j                  ht
        j                         d {   \  }}|j                  j                         s|j                  j                          t        t        |            j                         }|sy t!        |t"              sJ |r|S t%        |      dk(  ry t%        |      dk(  sJ t        t        |            }	||	   S 7 w)N)return_whenr      )r    _errorrC   r*   _filter_noneasynciowait
_transporton_error_futurefutureFIRST_COMPLETEDdonecancelnextiterresult
isinstancedictlen)
r#   r0   r1   rF   r   callbackrR   _rV   keys
             r$   r6   zChannel._inner_sendP   sG     >F""$$++E&*D#K##;;LL&,v"6
    ++;;  //
 
a ##%OO""$d4j!((* &$'''Mv;!6{a4< c{+
s   CE9E7	B/E9c                     d| _         y r?   )r,   r#   s    r$   mark_as_internal_typezChannel.mark_as_internal_types   s
    !%r&   )r-   
Connectionr.   ChannelOwnerr   Nr   r   N)__name__
__module____qualname__r(   strr   r   r;   r@   rE   r
   boolr6   r_   __classcell__r/   s   @r$   r   r   3   s    '
 
d 
c 

 
T 
S 

C 
 
 
!!#+D>!CG!	!F&r&   r   c            
            e Zd Zded   dedededdf
 fdZd	ee   ddfd
ZddZ	deeef   ddfdZ
dededdfdZdedededdf fdZdededdf fdZ xZS )ra   parent)ra   r`   typeguidinitializerr   Nc                    t         |   |j                         |j                  | _        |j                  | _        || _        || _        t        |t              r|j                  n|| _        t        |t              r|nd | _	        i | _
        t        | j                  |       | _        || _        d| _        | | j                  j                  |<   | j                  r| | j                  j                  |<   i | _        y )N)loopF)r'   r(   _loop_dispatcher_fiber_typer)   rW   ra   r    _parent_objectsr   _channel_initializer_was_collected_event_to_subscription_mapping)r#   rk   rl   rm   rn   r/   s        r$   r(   zChannelOwner.__init__x   s     	fll+06
&,&>&>

",V\"BF 	 !6FD 	 46!()9)94!@'#*.!!$'<<*.DLL!!$'>@+r&   reasonc                 Z   | j                   r!| j                   j                  | j                  = | j                  j                  | j                  = |dk(  | _        t        | j                  j                               D ]  }|j                  |        | j                  j                          y )Ngc)	rt   ru   r)   r    rx   listvalues_disposeclear)r#   rz   r.   s      r$   r   zChannelOwner._dispose   s}    <<%%djj1%%djj1$n 4==//12FOOF# 3r&   c                     t        d|j                        j                  |j                  = || j                  |j                  <   | |_        y )Nra   )r   rt   ru   r)   )r#   childs     r$   _adoptzChannelOwner._adopt   s8    /88E%*ekk"r&   mappingc                     || _         y r   )ry   )r#   r   s     r$   "_set_event_to_subscription_mappingz/ChannelOwner._set_event_to_subscription_mapping   s
    .5+r&   eventenabledc                       j                   j                  |      r" j                  j                   fdd       y y )Nc                  B    j                   j                  d d      S )NupdateSubscription)r   r   )rv   rE   )r   protocol_eventr#   s   r$   r%   z3ChannelOwner._update_subscription.<locals>.<lambda>   s    33(Nw*Wr&   T)ry   getr    rD   )r#   r   r   r   s   ` `@r$   _update_subscriptionz!ChannelOwner._update_subscription   s?    <<@@G// 	 r&   kvc                 n    | j                  |      s| j                  |d       t        |   |||       y r?   )	listenersr   r'   _add_event_handler)r#   r   r   r   r/   s       r$   r   zChannelOwner._add_event_handler   s0    ~~e$%%eT2"5!Q/r&   fc                 n    t         |   ||       | j                  |      s| j                  |d       y y r4   )r'   remove_listenerr   r   )r#   r   r   r/   s      r$   r   zChannelOwner.remove_listener   s3    q)~~e$%%eU3 %r&   )r   ra   r   N)rc   rd   re   r   rf   r   r(   r
   r   r   r   rg   r   r   r   r   rh   ri   s   @r$   ra   ra   w   s    A23A A 	A
 A 
A:
x} 
 

6$sCx. 6T 6#   0 0 0 0 0
4S 4S 4T 4 4r&   ra   c                   0    e Zd Zdej                  ddfdZy)ProtocolCallbackrp   r   Nc                          |j                          _        t        j                         dt        j                  dd f fdr1j                          j                  j                  fd       y y )Ntaskr   c                     rj                         | j                         rj                  j                          y y r   )remove_done_callback	cancelledrP   rS   )r   cbcurrent_taskr#   s    r$   r   z%ProtocolCallback.__init__.<locals>.cb   s3    11"5~~""$  r&   c                 .    rj                        S d S r   )r   )r[   r   r   s    r$   r%   z+ProtocolCallback.__init__.<locals>.<lambda>   s    =IL55b9StSr&   )create_futurerP   rL   r   Taskadd_done_callback)r#   rp   r   r   s   ` @@r$   r(   zProtocolCallback.__init__   sm    ((*++-	%W\\ 	%d 	% **2.KK)) r&   )rc   rd   re   rL   AbstractEventLoopr(    r&   r$   r   r      s    W66 4 r&   r   c                   (     e Zd Zd fdZddZ xZS )RootChannelOwnerc                 *    t         |   |ddi        y )NRoot )r'   r(   )r#   r-   r/   s     r$   r(   zRootChannelOwner.__init__   s    VR4r&   c                 l   K   t        | j                  j                  dddi       d {         S 7 w)N
initializesdkLanguagepython)from_channelrv   r;   r^   s    r$   r   zRootChannelOwner.initialize   s<     --$$!8 
 	
s   '42	4)r-   r`   r   N)r   r   )rc   rd   re   r(   r   rh   ri   s   @r$   r   r      s    5
r&   r   c                       e Zd Z	 d+dedeeeeegef   dede	j                  ded   ddf fd	Zed,d
       Zd-dZd-dZd-dZd-dZd-dZd+deddfdZdedeegdf   ddfdZdeddfdZ	 d.dededededef
dZdeddfdZdeddfdZd ed!eded"edef
d#Zd$edefd%Zd$edefd&Z 	 d.d'eg ef   d(edefd)Z!	 d.d'eg ef   d(edefd*Z" xZ#S )/r`   Ndispatcher_fiberobject_factory	transportrp   local_utilsr   r   c                     t                    | _        | _         fd j                  _        i  _        d _        i  _        i  _        | _	        d _
        g  _        | _        |j                          _        d  _        d _        d  _        t%        j&                  dd        _        | _        d _        d  _        y )Nc                 &    j                  |       S r   )dispatch)msgr#   s    r$   r%   z%Connection.__init__.<locals>.<lambda>   s    s1Cr&   r   FApiZone)default)r'   r(   rr   rN   
on_message_waiting_for_object_last_idru   
_callbacks_object_factory_is_sync_child_ws_connectionsrq   r   playwright_futurerJ   	is_remote
_init_taskcontextvars
ContextVar	_api_zone_local_utils_tracing_count_closed_error)r#   r   r   r   rp   r   r/   s   `     r$   r(   zConnection.__init__   s     	!1#%C"NP 1379-9;"
?C?Q?Q?S/326""9d; 	 5@26r&   c                 6    | j                   sJ | j                   S r   )r   r^   s    r$   r   zConnection.local_utils  s           r&   c                     d| _         y r?   )r   r^   s    r$   mark_as_remotezConnection.mark_as_remote	  s	    r&   c                 N   K   d| _         | j                          d {    y 7 wr?   )r   runr^   s    r$   run_as_synczConnection.run_as_sync  s     hhjs   %#%c                 F   K   t        j                          _        t                _        d fd} j
                  j                          d {     j                  j                   |              _         j
                  j                          d {    y 7 L7 w)Nc                     K    j                   j                   j                  j                          d {          y 7 	wr   )r   
set_result_root_objectr   r^   s   r$   initzConnection.run.<locals>.init  s0     ""--D4E4E4P4P4R.RS.Rs   3AA 
Arb   )
rL   get_running_looprq   r   r   rN   connectcreate_taskr   r   )r#   r   s   ` r$   r   zConnection.run  sy     --/
,T2	T oo%%'''**008oo!!### 	(#s%   AB!BAB!BB!B!c                     | j                   j                          | j                  j                          | j                  j                  | j                   j                                | j                          y r   )rN   request_stoprr   switchrq   run_until_completewait_until_stoppedcleanupr^   s    r$   	stop_synczConnection.stop_sync  sL    $$&%%'

%%doo&H&H&JKr&   c                    K   | j                   j                          | j                   j                          d {    | j                          y 7 wr   )rN   r   r   r   r^   s    r$   
stop_asynczConnection.stop_async!  s:     $$&oo00222 	3s   8AAAcausec                 @   |rt        |      n	t               | _        | j                  r4| j                  j                         s| j                  j	                          | j
                  D ]  }|j                  j                           | j                  j                         D ]O  }|j                  r|j                  j                         r+|j                  j                  | j                         Q | j                  j                          | j                  d       y )Nclose)r   r   r   rR   rS   r   rN   disposer   r~   no_replyrP   r   set_exceptionr   emit)r#   r   ws_connectionrZ   s       r$   r   zConnection.cleanup&  s    9>.u5DUDW??4??#7#7#9OO""$!77M$$,,. 8..0H  ((*OO))$*<*<= 1 			'r&   rm   rZ   c                 "    || j                   |<   y r   )r   )r#   rm   rZ   s      r$   call_on_object_with_known_namez)Connection.call_on_object_with_known_name6  s     *2  &r&   
is_tracingc                 ^    |r| xj                   dz  c_         y | xj                   dz  c_         y )NrI   )r   )r#   r   s     r$   set_is_tracingzConnection.set_is_tracing;  s'    1$1$r&   r.   r0   r1   r   c           	         | j                   r| j                   |j                  rt        d      | xj                  dz  c_        | j                  }t	        | j
                        }t        j                  | j
                        }t        t        j                  t        |dt        j                                     |_        ||_        || j                  |<   t        t         | j"                  j%                               }|j%                  dg       }	|	r|	d   d   |	d   d   |	d   d   d	nd }
t'        t(        j(                  j+                         j-                         d
z        |d   |d    d}|
r|
|d<   ||j.                  || j1                  |      |d}| j2                  dkD  r/|	r-|	r+|j.                  dk7  r| j4                  j7                  ||	       | j8                  j;                  |       || j                  |<   |S )Nz?The object has been collected to prevent unbounded heap growth.rI   __pw_stack_trace__framesr   filelinecolumn)r   r   r   i  apiName)wallTimer   internallocation)idrm   r0   r1   metadata
localUtils)r   rx   r   r   r   rq   rL   r   r   	tracebackStackSummarygetattrextract_stackstack_tracer   r   ParsedStackTracer   r   intdatetimenow	timestampr)   _replace_channels_with_guidsr   r   add_stack_to_tracing_no_replyrN   r;   )r#   r.   r0   r1   r   r   rZ   r   stack_trace_informationr   r   r   messages                r$   rC   z"Connection._send_message_to_serverA  s    $$$  Q  	]]#DJJ/##DJJ/#""D.	0G0G0IJ 
 %&"&'79K9K9M"N(,,Xr: 	 q	&)q	&) )H-  	 H--113==?$FG.y93I>>

 #+HZ LL77? 
 !#,::2vFW%&r&   r   c                 *     j                   ry |j                  d      }|r j                  j                  |      }|j                  j                         ry |j                  ry |j                  d      }|r|j                  d      syt        |d   t        |j                  d                  }dj                  t        j                  |j                        dd        |_        |j                  j                  |       y  j                  |j                  d            }|j                  j!                  |       y |d   }|d   }|j                  d	      }	|d
k(  r1|	sJ  j"                  |   }
 j%                  |
|	d   |	d   |	d          y  j"                  j                  |      }|st'        d| d|       |dk(  r]t)        t*        t,        t,        f   |	      d   } j"                  j                  |      }|st'        d|       |j/                  |       y |dk(  rUt1        |	t2              sJ  j"                  |   j5                  t)        t6        t,           |	j                  d                   y  j"                  |   }d|v}	  j8                  r|j:                  j=                  |      D ]h  dt>        j@                  dd f fdd	tB        dd ffd}tE        |      }|r!|jG                   j                  |	             X|jG                  |	       j y |r,|j:                  jI                  | j                  |	             y |j:                  jI                  ||	       y # tJ        $ r} jM                  |       Y d }~y d }~ww xY w)Nr   r   rV   logr   irm   r0   r1   
__create__rl   rn   zCannot find object to "z": 	__adopt__zUnknown new child: __dispose__rz   z	jsonPipe@rP   r   c                 N    | j                         }|rj                  |       y y r   )	exceptionr!   )rP   r"   r#   s     r$   _done_callbackz+Connection.dispatch.<locals>._done_callback  s'    $..0 99#> r&   c                 d     |       }t        j                  |      r|j                         y y r   )rL   isfuturer   )r1   potential_futurer  listeners     r$   %_listener_with_error_handler_attachedzBConnection.dispatch.<locals>._listener_with_error_handler_attached  s0    +3F+;("++,<=,>>~N >r&   )'r   r   r   poprP   r   r   r   format_call_logjoinr   format_listr   _stackr   _replace_guids_with_channelsr   ru   _create_remote_object	Exceptionr   r   rf   r   rW   rX   r   r
   r   rv   r   rL   Futurer   r   r   r   BaseExceptionr!   )r#   r   r   rZ   r   parsed_errorrV   rm   r0   r1   rk   r.   
child_guidr   "should_replace_guids_with_channelsr  gr"   r  r  s   `                 @@r$   r   zConnection.dispatchz  s:   WWT]**2.H((*   GGG$ESWWX.*'NOCGGEN$C  ')gg))(*>*>?E'# --l;  ::3778;LM**626{X"\!M6]]4(F&&vv}8M ""4(5fXSGHH[ d38nf5f=JMM%%j1E"5j\ BCCMM% ]"fd+++MM$((hsmVZZ=Q)RSt$-8-D*	/}} & 9 9& AH?w~~ ?$ ?
Oc Od O &&KLA9!B!B6!JK() !B, 6OO(( A A& I OO((8 	/))#..	/s%   BM. #-M. M. .	N7NNr"   c                     t        dt        j                         t        j                  t        |      ||j                  t        j                         || _        y )Nz Error occurred in event listener)r   )printsysstderrr   print_exceptionrl   __traceback__rJ   )r#   r"   s     r$   r!   z#Connection._on_event_listener_error  s:    0szzB!!$s)S#2C2C#**Ur&   rk   rl   rn   c                     | j                  |      }| j                  ||||      }|| j                  v r! | j                  j                  |      |       |S r   )r  r   r   r  )r#   rk   rl   rm   rn   rV   s         r$   r  z Connection._create_remote_object  sX     77D%%fdD+F4+++.D$$((.v6r&   payloadc                    ||S t        |t              rt        |      S t        |t        j                  j
                        r/t        |t              st        t        | j                  |            S t        |t              rt        |j                        S t        |t              r0i }|j                         D ]  \  }}| j                  |      ||<    |S |S )N)rm   )rW   r   rf   collectionsabcSequencer}   mapr  r   rX   r)   itemsr#   r,  rV   r\   values        r$   r  z'Connection._replace_channels_with_guids  s     ?Ngt$w<g{778SB
 D==wGHHgw'W]]++gt$F%mmo
U"??Fs .Mr&   c                 ^   ||S t        |t              rt        t        | j                  |            S t        |t              ri|j                  d      | j                  v r| j                  |d      j                  S i }|j                         D ]  \  }}| j                  |      ||<    |S |S )Nrm   )	rW   r}   r1  r  rX   r   ru   rv   r2  r3  s        r$   r  z'Connection._replace_guids_with_channels  s    ?Ngt$D==wGHHgt${{6"dmm3}}WV_5>>>F%mmo
U"??Fs .Mr&   r   is_internalc                   K   | j                   j                         r |        d {   S t        j                  | j                        }t        |dt        j                               }t        ||      }| j                   j                  |       	  |        d {   | j                   j                  d        S 7 7 !# t        $ r}t        ||d    d|       d d }~ww xY w# | j                   j                  d        w xY wwN__pw_stack__r   z: r   r   rL   r   rq   r   inspectstack+_extract_stack_trace_information_from_stacksetr  r   r#   r   r6  r   st	parsed_str   s          r$   r9   zConnection.wrap_api_call  s      >>:##DJJ/&-dNGMMO&T?KP	9%	%: NNt$   	U)I*>)?r%'IJPTT	U NNt$sR   %DB<A)D
C  B>C   D>C   	C#	CC##C& &DDc                    | j                   j                         r |       S t        j                  | j                        }t        |dt        j                               }t        ||      }| j                   j                  |       	  |       | j                   j                  d        S # t        $ r}t        ||d    d|       d d }~ww xY w# | j                   j                  d        w xY wr8  r:  r?  s          r$   rD   zConnection.wrap_api_call_sync  s     >>4K##DJJ/&-dNGMMO&T?KP	9%	%4 NNt$  	U)I*>)?r%'IJPTT	U NNt$s$   B* *	C3CCC C-r   )r   r   rb   )F)$rc   rd   re   r   r   ra   rf   r   r   rL   r   r
   r(   propertyr   r   r   r   r   r   r   r   rg   r   r   rC   r   r   r   r!   r  r  r  r9   rD   rh   ri   s   @r$   r`   r`      s    /377 !,S$!?!MN7 	7
 ''7 l+7 
7> ! !	$
S D  22#+\ND,@#A2	2
% %$ % QV7"7,/79=7IM7	7rV/0 V/T V/pM d "*-58GK	 
*C C  :?%2s7#%26%	%" :?%2s7#%26%	%r&   r`   channelr   c                     | j                   S r   r*   rD  s    r$   r   r   %  s    ??r&   c                 "    | r| j                   S d S r   rF  rG  s    r$   from_nullable_channelrI  )  s    %7??/4/r&   c                   <    e Zd ZU eed<   eed<   eed<   ee   ed<   y)
StackFramer   r   r   functionN)rc   rd   re   rf   __annotations__r  r
   r   r&   r$   rK  rK  -  s    
I
IKsmr&   rK  c                   .    e Zd ZU ee   ed<   ee   ed<   y)r  r   r   N)rc   rd   re   r   rK  rM  r
   rf   r   r&   r$   r  r  4  s    c]r&   r  r@  r6  c                 R   t        t        t        j                        j                  d         }d}d}g }| D ]  }t        j
                  j                  j                  |j                  k(  r5|j                  j                  |      }d}d|d   j                  v r)|d   j                  d   j                  j                  dz   }||d   j                  j                  z  }|s*|j                  |j                  |j                  d|d       |r|}|s|}d} |s|}||rddS |dS )Nr   r   r#   .)r   r   r   rL  )r   r   )rf   r   
playwright__file__parents_impl_impl_to_api_mappingfilename
startswithf_localsr/   rc   f_codeco_nameappendlineno)	r@  r6  playwright_module_pathlast_internal_api_nameapi_nameparsed_framesframeis_playwright_internalmethod_names	            r$   r=  r=  9  s:    !j&9&9!:!B!B1!EFH&(M
 0099U^^K!&!:!:;Q!RU1X&&&(++F3==FFLKuQx...%  !NN!LL +	 "%0"#-H%'"7 8 )  $2 *2 r&   dc                 \    | j                         D ci c]  \  }}|	|| c}}S c c}}w r   )r2  )rd  r   r   s      r$   rK   rK   e  s,    WWY8YTQ!-AqDY888s   
((r  c                 |    | syt        t        t        d |                   dk(  ryddj                  |       z   dz   S )Nr   c                 "    | j                         S r   )strip)xs    r$   r%   z!format_call_log.<locals>.<lambda>l  s
    r&   r   z
Call log:
z
  - 
)rY   r}   filterr  )r  s    r$   r  r  i  s>    
4*C012a7X]]3//$66r&   )9rL   collections.abcr.  r   r  r;  r'  r   pathlibr   typingr   r   r   r   r   r	   r
   r   r   r   pyeer   pyee.asyncior   rQ  %playwright._impl._impl_to_api_mappingplaywright._impl._errorsr   r   playwright._impl._greenletsr   playwright._impl._helperr   r   r   playwright._impl._transportr   playwright._impl._local_utilsr   playwright._impl._playwrightr   r   ra   r   r   r`   r   rI  rK  r  	FrameInforg   r=  rK   rf   r  r   r&   r$   <module>ry     s8        
      ,  , E 5 M M 187A&! A&HD4& D4N .
| 
~% ~%B
' c 08G#4 0# 0 y 
)W).2))X9G 9 97$s), 7 7r&   