
    ijh                        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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$m%Z% d d	l&m'Z' erd d
l(m)Z) d dl*m+Z+ eeee,   ge,f      Z- e. e	ej^                        j`                  d          Z1 G d de      Z2 G d de      Z3 G d d      Z4 G d de3      Z5 G d de      Z6de2defdZ7dee2   dee   fdZ8 G d de      Z9 G d de      Z:de:fdZ;de:d e<d!ee.   de:fd"Z=d#ee   d$eeee,   ge,f      deee,f   fd%Z>d&edefd'Z?d(eee.      de.fd)Z@y)*    N)Path)TYPE_CHECKINGAnyCallableDictListMappingOptionalTuple	TypedDictUnioncast)EventEmitter)AsyncIOEventEmitter)TargetClosedErrorrewrite_error)EventGreenlet)ErrorParsedMessagePayload create_task_and_ignore_exceptionparse_error)	Transport)
LocalUtils)
Playwrightc                        e Zd Zd fdZ	 	 	 ddedededededefd	Z		 	 	 ddedededededdfd
Z
	 	 	 ddedededededefdZ	 	 	 ddedededededdfdZdededee   dedef
dZ xZS )ChannelreturnNc                      t                    | _        |j                   _        | _         j                  d fd       y )Nerrorc                 :    j                   j                  |       S N)_connection_on_event_listener_error)excselfs    O/root/.hermes/venv/lib/python3.12/site-packages/playwright/_impl/_connection.py<lambda>z"Channel.__init__.<locals>.<lambda>B   s    T%5%5%N%Ns%S     )super__init__r"   _guid_objecton)r%   
connectionobject	__class__s   `  r&   r*   zChannel.__init__=   s7    %\\
STr(   methodtimeout_calculatorparamsis_internaltitlec                 l    K    j                   j                   fd||       d {   S 7 w)Nc                  ,    j                   d      S NF_inner_sendr1   r3   r%   r2   s   r&   r'   zChannel.send.<locals>.<lambda>M   s    D$$V-?O r(   r"   wrap_api_callr%   r1   r2   r3   r4   r5   s   ````  r&   sendzChannel.sendD   s5      %%33O
 
 	
 
   '424c           
      j    t        | j                  j                  | j                  |||||             y r!   )r   r"   _loopr?   r>   s         r&   send_may_failzChannel.send_may_failR   s0     	)""IIf0&+uM	
r(   c                 l    K    j                   j                   fd||       d {   S 7 w)Nc                  ,    j                   d      S NTr9   r;   s   r&   r'   z-Channel.send_return_as_dict.<locals>.<lambda>h   s    D$$V-?N r(   r<   r>   s   ````  r&   send_return_as_dictzChannel.send_return_as_dict_   s5      %%33N
 
 	
 
r@   c                 p     t        ||      \   j                  j                   fd||       y )Nc                  V    j                   j                  j                   d      S rF   )r"   _send_message_to_serverr,   )augmented_paramsr1   r%   timeouts   r&   r'   z'Channel.send_no_reply.<locals>.<lambda>x   s+    D$$<<  r(   )_augment_paramsr"   wrap_api_call_sync)r%   r1   r2   r3   r4   r5   rK   rL   s   ``    @@r&   send_no_replyzChannel.send_no_replym   s9     %4F<N$O!'++ 
	
r(   return_as_dictc                   K   | j                   j                  r)| j                   j                  }d | j                   _        |t        ||      \  }}| j                   j                  | j                  |||      }	 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 # t
        j                  $ rC}| j                   j                  | j                  |t        |      xs d       d {  7    d }~ww xY ww)Nreturn_whenzTask was cancelledr      )r"   _errorrM   rJ   r,   asynciowait
_transporton_error_futurefutureFIRST_COMPLETEDCancelledError_abortstrdonecancelnextiterresult
isinstancedictlen)r%   r1   r2   r3   rP   r   rK   rL   callbackr_   _r$   rc   keys                 r&   r:   zChannel._inner_send   s     ""$$++E&*D#K$3F<N$O!'##;;LL&"2G
	#LL$$//??OO $33 GD! ##%OO""$d4j!((* &$'''Mv;!6{a4< c{9 %% 	""))C00  
 	sJ   A7G:AE= E;E= B'G;E= =G7GG
GGG)r.   
Connectionr/   ChannelOwnerr   N)NFN)__name__
__module____qualname__r*   r^   TimeoutCalculatorr   boolr   r?   rC   rG   rO   r
   r:   __classcell__r0   s   @r&   r   r   <   sj   U !

 .
 	

 
 
 

$ !

 .
 	

 
 
 

" !

 .
 	

 
 
 

$ !

 .
 	

 
 
 

,,, ., 	,
 , 
,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 )rk   parent)rk   rj   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*   rB   _dispatcher_fiber_typer+   rd   rk   r"   _parent_objectsr   _channel_initializer_was_collected_event_to_subscription_mapping)r%   rt   ru   rv   rw   r0   s        r&   r*   zChannelOwner.__init__   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)	r|   r}   r+   r"   r   listvalues_disposeclear)r%   r   r/   s      r&   r   zChannelOwner._dispose   s    <<%%djj1%%djj1$n 4==//12 	$FOOF#	$r(   c                     t        d|j                        j                  |j                  = || j                  |j                  <   | |_        y )Nrk   )r   r|   r}   r+   )r%   childs     r&   _adoptzChannelOwner._adopt   s8    /88E%*ekk"r(   mappingc                     || _         y r!   )r   )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                  D    j                   j                  dd  d      S )NupdateSubscription)r   r   )r~   rO   )r   protocol_eventr%   s   r&   r'   z3ChannelOwner._update_subscription.<locals>.<lambda>   s$    33(,A r(   T)r   getr"   rN   )r%   r   r   r   s   ` `@r&   _update_subscriptionz!ChannelOwner._update_subscription   s?    <<@@G//
  r(   kvc                 n    | j                  |      s| j                  |d       t        |   |||       y rF   )	listenersr   r)   _add_event_handler)r%   r   r   r   r0   s       r&   r   zChannelOwner._add_event_handler   s0    ~~e$%%eT2"5!Q/r(   fc                 n    t         |   ||       | j                  |      s| j                  |d       y y r8   )r)   remove_listenerr   r   )r%   r   r   r0   s      r&   r   zChannelOwner.remove_listener   s3    q)~~e$%%eU3 %r(   )r   rk   r   N)rl   rm   rn   r   r^   r   r*   r
   r   r   r   rp   r   r   r   r   rq   rr   s   @r&   rk   rk      s    A23A A 	A
 A 
A:
x} 
 

6$sCx. 6T 6
# 
 
 
0 0 0 0 0
4S 4S 4T 4 4r(   rk   c            	       <    e Zd Z	 ddej                  dededdfdZy)ProtocolCallbackry   idno_replyr   Nc                 P    | _           | _        |j                          _        |r j                  j	                  d        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	cancelledrZ   r`   )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   )rh   r   r   s    r&   r'   z+ProtocolCallback.__init__.<locals>.<lambda>  s     =IL55b9 OS r(   )	r   r   create_futurerZ   
set_resultrV   r   Taskadd_done_callback)r%   ry   r   r   r   r   s   `   @@r&   r*   zProtocolCallback.__init__   s      ((*KK""4(++-	%W\\ 	%d 	% **2.KK)) r(   F)rl   rm   rn   rV   AbstractEventLoopintrp   r*    r(   r&   r   r      s0    IN--36BF	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.   r0   s     r&   r*   zRootChannelOwner.__init__  s    VR4r(   c                 n   K   t        | j                  j                  dd ddi       d {         S 7 w)N
initializesdkLanguagepython)from_channelr~   r?   r%   s    r&   r   zRootChannelOwner.initialize  s?     --$$!8 
 	
s   (53	5)r.   rj   r   N)r   r   )rl   rm   rn   r*   r   rq   rr   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d0d
       Zd1dZd1dZd1dZd1dZd1d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	 d2dedededededefdZdedededd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"	 d3d*eg ef   d+ed,edefd-Z#	 d3d*eg ef   d+ed,edefd.Z$ xZ%S )4rj   Ndispatcher_fiberobject_factory	transportry   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>3  s    s1C r(   r   FApiZone)default)r)   r*   rz   rX   
on_message_waiting_for_object_last_idr}   
_callbacks_object_factory_is_sync_child_ws_connectionsrB   r   playwright_futurerU   	is_remote
_init_taskcontextvars
ContextVar	_api_zone_local_utils_tracing_count_closed_error)r%   r   r   r   ry   r   r0   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_utilsG  s           r(   c                     d| _         y rF   )r   r   s    r&   mark_as_remotezConnection.mark_as_remoteL  s	    r(   c                 N   K   d| _         | j                          d {    y 7 wrF   )r   runr   s    r&   run_as_synczConnection.run_as_syncO  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   r   _root_objectr   r   s   r&   initzConnection.run.<locals>.initW  s0     ""--D4E4E4P4P4R.RS.Rs   3AA 
Ar   N)
rV   get_running_looprB   r   r   rX   connectcreate_taskr   r   )r%   r   s   ` r&   r   zConnection.runS  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!   )rX   request_stoprz   switchrB   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!   )rX   r   r   r   r   s    r&   
stop_asynczConnection.stop_asyncd  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   r_   r`   r   rX   disposer   r   r   rZ   r   set_exceptionr   emit)r%   r   ws_connectionrg   s       r&   r   zConnection.cleanupi  s    9>.u5DUDW??4??#7#7#9OO""$!77 	/M$$,,.	/..0 	>H  ((*OO))$*<*<=	> 			'r(   rv   rg   c                 "    || j                   |<   y r!   )r   )r%   rv   rg   s      r&   call_on_object_with_known_namez)Connection.call_on_object_with_known_namey  s     *2  &r(   
is_tracingc                 ^    |r| xj                   dz  c_         y | xj                   dz  c_         y )NrT   )r   )r%   r   s     r&   set_is_tracingzConnection.set_is_tracing~  s'    1$1$r(   r/   r1   r3   rL   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d       xs t        j                  d            |_        ||_        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<   |	d   }|r||d<   ||j,                  || j/                  |      |d}| j0                  dkD  r-|
r+|j,                  dk7  r| j2                  j5                  ||
       || j6                  |<   | j8                  j;                  |       |S )Nz?The object has been collected to prevent unbounded heap growth.rT   )r   __pw_stack_trace__
   )limitframesr   filelinecolumn)r  r  r  i  apiName)wallTimer  internalrL   locationr5   )r   rv   r1   r3   metadata
localUtils)r   r   r   r   r   rB   rV   r   r   	tracebackStackSummarygetattrextract_stackstack_tracer   ParsedStackTracer   r   r   datetimenow	timestampr+   _replace_channels_with_guidsr   r   add_stack_to_tracing_no_replyr   rX   r?   )r%   r/   r1   r3   rL   r   r   rg   r   stack_trace_informationr   r  r  r5   messages                  r&   rJ   z"Connection._send_message_to_server  s    $$$  Q  	]]#DJJXF##DJJ/#""D.5 1&&R0 

 %"&'79K9K9M"N(,,Xr: 	 q	&)q	&) )H-  	 H--113==?$FG.y93I>>	
 #+HZ '0 %HWLL77? 
 "v&,,,2N::2vF&W%r(   r   c                 x  K   	 | j                   j                  |j                  d|j                  |dd       	 t        j                  | j                   j                  |j                  ht        j                         d {   \  }}|j                  j                         s|j                  j                          	 |D ]#  }|j                         r|j                          % y # t        t
        f$ r Y w xY w7 z# |j                  j                         s|j                  j                          w w xY ww)N	__abort__)r   r   )rv   r1   r3   rR   )rX   r?   r+   r   r   OSErrorrV   rW   rY   rZ   r[   r_   r`   r   	exception)r%   r/   rg   r   r_   rh   rZ   s          r&   r]   zConnection._abort  s    		OO  "LL)%-[[FC
	)#LLOO33OO $33 GD! ??'')&&( 	#F##%  "	# w 		 ??'')&&( *sS   D:6C) AD  C>D  A
D:D:)C;8D::C;;D:>D   7D77D:r   c                      j                   ry |j                  d      }|rO j                  j                  |      }|j                  j                         ry |j                  ry |j                  d      }|r|j                  d      st        |d   t        |j                  d                  }|j                  d      |_	         j                  |j                  d            |_        dj                  |j                  j                               |_        |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|       |j1                  |       y |dk(  rUt3        |	t4              sJ  j$                  |   j7                  t+        t8        t.           |	j                  d                   y  j$                  |   }d|v}	  j:                  r|j<                  j?                  |      D ]h  dt@        jB                  dd f fdd	tD        dd ffd}tG        |      }|r!|jI                   j                  |	             X|jI                  |	       j y |r,|j<                  jK                  | j                  |	             y |j<                  jK                  ||	       y # tL        $ r} jO                  |       Y d }~y d }~ww xY w)Nr   r   rc   logerrorDetailsr   rv   r1   r3   
__create__ru   rw   zCannot find object to "z": 	__adopt__zUnknown new child: __dispose__r   z	jsonPipe@rZ   r   c                 N    | j                         }|rj                  |       y y r!   )r  r#   )rZ   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!   )rV   isfuturer   )r3   potential_futurer"  listeners     r&   %_listener_with_error_handler_attachedzBConnection.dispatch.<locals>._listener_with_error_handler_attached   s0    +3F+;("++,<=,>>~N >r(   )(r   r   r   poprZ   r   r   r   format_call_log_log_replace_guids_with_channels_detailsjoinr  format_stackr   r   r}   _create_remote_object	Exceptionr   r   r^   r   rd   re   r   r
   r   r~   r   rV   Futurer   r   r   r   BaseExceptionr#   )r%   r   r   rg   r   parsed_errorrc   rv   r1   r3   rt   r/   
child_guidr   "should_replace_guids_with_channelsr'  gr$   r"  r&  s   `                 @@r&   r   zConnection.dispatch  sa   WWT]**2.H((*   GGG$ESWWX.*'NOCGGEN$C  %(GGEN!(,(I(IGGN+)% ')ggh.B.B.I.I.K&L#--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& A )H?w~~ ?$ ?
Oc Od O &&KLA9!B!B6!JK()), 6OO(( A A& I OO((8 	/))#..	/s%   BN! -N! N! !	O*O  Or$   c                     t        dt        j                         t        j                  t        |      ||j                  t        j                         || _        y )Nz Error occurred in event listener)r  )printsysstderrr
  print_exceptionru   __traceback__rU   )r%   r$   s     r&   r#   z#Connection._on_event_listener_error7  s:    0szzB!!$s)S#2C2C#**Ur(   rt   ru   rw   c                     | j                  |      }| j                  ||||      }|| j                  v r! | j                  j                  |      |       |S r!   )r+  r   r   r(  )r%   rt   ru   rv   rw   rc   s         r&   r0  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)rv   )rd   r   r^   collectionsabcSequencer   mapr  r   re   r+   itemsr%   r?  rc   ri   values        r&   r  z'Connection._replace_channels_with_guidsF  s     ?Ngt$w<g{778SB
 D==wGHHgw'W]]++gt$F%mmo G
U"??FsG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 )Nrv   )	rd   r   rD  r+  re   r   r}   r~   rE  rF  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 G
U"??FsGMr(   r   r4   r5   c                   K   | j                   j                         r |        d {   S t        j                  | j                        }t        t        |dd       xs
 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   rV   r   rB   _attach_api_call_informationr  _capture_stack_tracesetr1  r   r%   r   r4   r5   r   	parsed_str   s          r&   r=   zConnection.wrap_api_calli  s      >>:##DJJ/0D.$/I3G3I
	
 	9%	%: NNt$   	U)I*>)?r%'IJPTT	U NNt$sR   %C?B5A"C?
B9 B7B9 C?7B9 9	CCCC C<<C?c                    | j                   j                         r |       S t        j                  | j                        }t        t        |dd       xs
 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rJ  rL  rP  s          r&   rN   zConnection.wrap_api_call_sync|  s     >>4K##DJJ/0D.$/I3G3I
	
 	9%	%4 NNt$  	U)I*>)?r%'IJPTT	U NNt$s$   B# #	C,CCC	 	C&r!   )r   r   r   r   )FN)&rl   rm   rn   r   r   rk   r^   r   r   rV   r   r
   r*   propertyr   r   r   r   r   r   r   r   rp   r   floatr   rJ   r]   r   r   r3  r#   r0  r  r+  r=   rN   rq   rr   s   @r&   rj   rj   '  s7    /377 !,S$!?!MN7 	7
 ''7 l+7 
7> ! !	$
S D  22#+\ND,@#A2	2
% %$ % ;; ; 	;
 ; ; 
;z#"#.>#HK#	#8X/0 X/T X/tM d "*-58GK	 
*C C  NR%2s7#%26%GJ%	%( NR%2s7#%26%GJ%	%r(   rj   channelr   c                     | j                   S r!   r,   rU  s    r&   r   r     s    ??r(   c                 "    | r| j                   S d S r!   rW  rX  s    r&   from_nullable_channelrZ    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)rl   rm   rn   r^   __annotations__r   r
   r   r(   r&   r\  r\    s    
I
IKsmr(   r\  c                   >    e Zd ZU ee   ed<   ee   ed<   ee   ed<   y)r  r   r  r5   N)rl   rm   rn   r   r\  r^  r
   r^   r   r(   r&   r  r    s!    c]C=r(   r  c                  ^   t        j                         } | r"| j                  r| j                  j                  nd } d}d}g }| r| j                  }|j                  }t
        j                  j                  j                  |k(  r| j                  } N|j                  t              }d}d| j                  v r&| j                  d   j                  j                  dz   }||j                  z  }|s |j                  || j                   d|d       |r|}n|r|}d}| j                  } | r|s|}||d dS )Nr   r%   .r   )r  r  r  r]  )r   r  r5   )inspectcurrentframef_backf_codeco_filename
playwright_impl_impl_to_api_mapping__file__
startswith_PLAYWRIGHT_MODULE_PATHf_localsr0   rl   co_nameappendf_lineno)framelast_internal_api_nameapi_nameparsed_framescodefilenameis_playwright_internalmethod_names           r&   rN  rN    s5     "E#(U\\ELLtEH&(M
||##
 0099XELLE!)!4!45L!MU^^#..0::CCcIKt||#%  $!NN +	 "%0"#-H%'"? @ )   r(   r  r4   r5   c                     |rd| d<   || d<   | S )Nr   r  r5   r   )r  r4   r5   s      r&   rM  rM    s#    
 -/	*',G$""r(   r3   r2   c                 `    | i } | j                  dd       }d}|r ||      }t        |       |fS )NrL   r   )r(  _filter_none)r3   r2   timeout_paramrL   s       r&   rM   rM     s@     ~JJy$/MG$]3((r(   dc                     i }| j                         D ](  \  }}|	t        |t              rt        |      n|||<   * |S r!   )rE  rd   re   r{  )r}  rc   r   r   s       r&   r{  r{    sI    F	 B19'1!T':LOq	B Mr(   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>  s     r(   r   z
Call log:

)rf   r   filterr-  )r  s    r&   r)  r)    s=    
4*C012a7TYYs^+d22r(   )ArV   collections.abcrA  r   r  rb  r:  r
  pathlibr   typingr   r   r   r   r   r	   r
   r   r   r   r   pyeer   pyee.asyncior   rg  %playwright._impl._impl_to_api_mappingplaywright._impl._errorsr   r   playwright._impl._greenletsr   playwright._impl._helperr   r   r   r   playwright._impl._transportr   playwright._impl._local_utilsr   playwright._impl._playwrightr   rT  ro   r^   rj  parentsrl  r   rk   r   r   rj   r   rZ  r\  r  rN  rp   rM  rM   r{  r)  r   r(   r&   <module>r     s        
       ,  , E 5  287Xx&7&>?@ d:#6#67??BC s! slF4& F4R 8
| 
 f% f%R' c 08G#4 0# 0 y .. .b#-## C=# 	#
)TN
) 8E?*;U*B!CD
) 4;
)G  3$s), 3 3r(   