
    /j&                         d dl Z d dl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mZmZmZ d dlmZ d dlmZmZ  G d d	e      Zy)
    N)AnyDictLiteralOptionalPatternUnioncast)TracingGroupLocation)Artifact)ChannelOwnerfrom_channelfrom_nullable_channel)DisposableStub)Errorlocals_to_paramsc                   6    e Zd Zdededededdf
 fdZ	 	 	 	 	 	 d,ded	ed
ededededdfdZd-d	ededdfdZ	deddfdZ
d.deej                  ef   ddfdZd.deej                  ef   ddfdZd.deej                  ef   ddfdZd/dZ	 d.dededefdZd/dZ	 	 	 d0deej                  ef   ded   ded   deeee   f   def
d Z	 	 	 	 d1d!eej                  ef   d"ee   d#eeee   f   d$ed   d%ed   d&ee   defd'Zd/d(Zd/d)Zd*eddfd+Z xZS )2TracingparenttypeguidinitializerreturnNc                     t         |   ||||       d| _        d| _        d | _        d| _        d | _        d | _        i | _        y NF)	super__init___include_sources_is_live
_stacks_id_is_tracing_traces_dir_har_id_har_recorders)selfr   r   r   r   	__class__s        W/var/www/html/maxservice/venv/lib/python3.12/site-packages/playwright/_impl/_tracing.pyr   zTracing.__init__   sM     	t[9&+#)-!&*.&*9;    nametitle	snapshotsscreenshotssourceslivec           	      T  K   t        t                     }t        |      | _        t        |      | _        | j
                  j                  dd ||||d       d {    | j
                  j                  dd ||d       d {   }| j                  |       d {    y 7 F7  7 	w)NtracingStart)r(   r*   r+   r-   tracingStartChunk)r)   r(   )r   localsboolr   r   _channelsend_start_collecting_stacks)	r$   r(   r)   r*   r+   r,   r-   params
trace_names	            r&   startzTracing.start*   s      "&(+ $WT
mm  &*		
 		
 		
  ==--'E
 

 ++J777		

 	8s6   AB(B"'B(B$B(B&B($B(&B(c                    K   t        t                     }| j                  j                  dd |       d {   }| j	                  |       d {    y 7 7 w)Nr0   )r   r1   r3   r4   r5   )r$   r)   r(   r6   r7   s        r&   start_chunkzTracing.start_chunkF   sL     !&(+==--.A4PP
++J777 Q7s!   4AAAAAAr7   c                    K   | j                   s"d| _         | j                  j                  d       | j                  j                  j	                  | j
                  || j                         d {   | _        y 7 
w)NT)r    _connectionset_is_tracinglocal_utilstracing_startedr!   r   r   )r$   r7   s     r&   r5   z Tracing._start_collecting_stacksK   sd     #D++D1 $ 0 0 < < L Lj$--!
 
 
s   A-A</A:0A<pathc                 B   K   | j                  |       d {    y 7 wN)_do_stop_chunkr$   r@   s     r&   
stop_chunkzTracing.stop_chunkS   s     !!$'''s   c                    K   | j                  |       d {    | j                  j                  dd        d {    y 7 )7 w)NtracingStop)rC   r3   r4   rD   s     r&   stopzTracing.stopV   sG     !!$'''mm  
 	
 	
 	(	
s   AA#AAAA	file_pathc                   K   | j                          |sk| j                  j                  dd ddi       d {    | j                  r7| j                  j
                  j                  | j                         d {    y | j                  j                   }|r{| j                  j                  dd ddi       d {   }| j                  j
                  j                  t        |      |d   | j                  d| j                  d       d {    y | j                  j                  dd ddi       d {   }t        t        t           t        |j!                  d                  }|sD| j                  r7| j                  j
                  j                  | j                         d {    y |j#                  |       d {    |j%                          d {    | j                  j
                  j                  t        |      g | j                  d	| j                  d       d {    y 7 7 7 }7 -7 7 7 ~7 h7 w)
NtracingStopChunkmodediscardentrieswrite)zipFilerN   stacksIdrL   includeSourcesarchiveartifactappend)_reset_stack_counterr3   r4   r   r<   r>   trace_discarded	is_remotesend_return_as_dictzipstrr   r	   r   r   r   getsave_asdelete)r$   rI   is_localresultrT   s        r&   rC   zTracing._do_stop_chunk]   s    !!#--$$%7	?RSSS&&22BB4??SSS''111==<<"D69*= F ""..22"9~%i0 $#&*&;&;   }}88	
 
 X!&**Z"89
 &&22BB4??SSS y)))oo**..y> OO "&"7"7
 	
 	
[ TS
  T 	*	
s   5I	H2AI	:H5;A I	;H8<AI	H;'I	6H>7A3I	*I+I	II	IAI	,I-I	5I	8I	;I	>I	I	I	I	I	c                 b    | j                   r#d| _         | j                  j                  d       y y r   )r    r<   r=   r$   s    r&   rV   zTracing._reset_stack_counter   s,    $D++E2 r'   locationc                     K    j                   j                  dd t        t                            d {    t	         fd       S 7 w)NtracingGroupc                  $     j                         S rB   )	group_endrb   s   r&   <lambda>zTracing.group.<locals>.<lambda>   s    dnn&6 r'   )r3   r4   r   r1   r   )r$   r(   rc   s   `  r&   groupzTracing.group   sA      mm  7G7QRRR6== 	Ss   2AA	Ac                 X   K   | j                   j                  dd        d {    y 7 w)NtracingGroupEnd)r3   r4   rb   s    r&   rg   zTracing.group_end   s(     mm  
 	
 	
s    *(*content)attachembedomitrL   )fullminimal	urlFilterc                     K    j                   rt        d      t        |      j                  d      }|rdnd} j	                  |d ||xs ||xs d       d {    _         t         fd       S 7 w)Nz&HAR recording has already been started.ziprm   rn   rp   )harpageurlupdate_contentupdate_modec                  $     j                         S rB   )stop_harrb   s   r&   rh   z#Tracing.start_har.<locals>.<lambda>   s    dmmo r'   )r"   r   r[   endswith_record_into_harr   )r$   r@   rl   rL   rr   is_zipdefault_contents   `      r&   	start_harzTracing.start_har   s      <<@AAT##F+HG 	 "22"5o 3 
 
 5t<<
s   AA7A5A7ru   rv   rw   rx   ry   resourcesDirc                   K   t        |      j                  d      }d }d }	d }
t        t               r}n(&j                  }	dj	                  fddD              }
|xs d|xs d|rd n
t        |      d}|||d<   |	|	|d	<   |
|
|d
<   |||d<   d|i}||j
                  |d<   | j
                  j                  dd |       d {   }|d   }dt        |      i| j                  |<   |S 7 %w)Nrt    c              3   F   K   | ]  \  }}j                   |z  r|  y wrB   )flags).0flagmaskrw   s      r&   	<genexpr>z+Tracing._record_into_har.<locals>.<genexpr>   s)      &D$99t# &s   !))i   )m   )s   rm   rq   )rl   rL   harPathurlGloburlRegexSourceurlRegexFlagsr   optionsrv   harStartharIdr@   )r[   r|   
isinstancepatternjoinr3   rY   r#   )r$   ru   rv   rw   rx   ry   r   r~   url_globurl_regex_sourceurl_regex_flagsr   r6   r`   har_ids      `           r&   r}   zTracing._record_into_har   s2     S""6*"&*.)-c3H_"{{ gg &"A& O &1,9%t3s8&

 !)GI'(8G$%&'6GO$#&2GN#"+W!5!]]F6N}}88T6RR'-s3x&8F# Ss   CC3C1&C3c                    K   t        | j                  j                               D ]  }| j                  |       d {     d | _        y 7 wrB   )listr#   keys_export_harr"   r$   r   s     r&   _export_all_harszTracing._export_all_hars   sI     4..3356 	+F""6***	+ +s   ;AAAc                 n   K   | j                   }|sy d | _         | j                  |       d {    y 7 wrB   )r"   r   r   s     r&   r{   zTracing.stop_har   s0     v&&&s   +535r   c                   K   | j                   j                  |d       }|sy | j                  j                   }|d   j	                  d      }|rd| j
                  j                  dd |dd       d {   }|sy | j                  j                  j                  |d   |d   ddd       d {    y | j
                  j                  dd |d	d       d {   }t        t        t        |d
               }|r5|j                  |d          d {    |j                          d {    y |j                  |d   dz          d {    |j                          d {    y 7 7 7 7 [7 E7 '7 w)Nr@   rt   	harExportrN   )r   rL   rO   F)rP   rN   rL   rR   rS   rT   z.tmp)r#   popr<   rX   r|   r3   rY   r>   rZ   r	   r   r   r]   r^   )r$   r   r6   r_   r~   r`   rT   s          r&   r   zTracing._export_har   s|    $$((6''111((0==<<TVY#G F ""..22%f~%i0#&+	   }}88C
 
 ,vj/A"BC""6&>222//###vf~6777oo5

 3# 	8s~   A0E42E&3:E4-E(.(E4E*9E4E,E4(E.)E4E0	E4 E2!E4(E4*E4,E4.E40E42E4)NNNNNN)NNrB   )r   N)NNN)NNNN)__name__
__module____qualname__r   r[   r   r   r2   r8   r:   r5   r   pathlibPathrE   rH   rC   rV   r
   r   ri   rg   r   r   r   r   r}   r   r{   r   __classcell__)r%   s   @r&   r   r      sY   
<"
<*-
<58
<GK
<	
<  88 8 	8
 8 8 8 
888s 8 8 8

 
 
(U7<<+<%= ( (
uW\\3%67 
4 
:
eGLL#4E.F :
RV :
x3 ;?>>#7>	>
 7;+/.2=GLL#%&= 23= '(	=
 gcl*+= 
=4 )-=A26&*)7<<$%) |$) 3$%	)
   9:) ./) sm) 
)V
'"  "  " r'   r   )r   typingr   r   r   r   r   r   r	    playwright._impl._api_structuresr
   playwright._impl._artifactr   playwright._impl._connectionr   r   r   playwright._impl._disposabler   playwright._impl._helperr   r   r    r'   r&   <module>r      s9     E E E A / 
 8 <| l | r'   