
    '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dS )
    N)AnyDictLiteralOptionalPatternUnioncast)TracingGroupLocation)Artifact)ChannelOwnerfrom_channelfrom_nullable_channel)DisposableStub)Errorlocals_to_paramsc                   ^    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 | _        d S NF)	super__init___include_sources_is_live
_stacks_id_is_tracing_traces_dir_har_id_har_recorders)selfr   r   r   r   	__class__s        ]/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/playwright/_impl/_tracing.pyr   zTracing.__init__   s^     	t[999&+#)-!&*.&*9;    nametitle	snapshotsscreenshotssourceslivec           	      ^  K   t          t                                }t          |          | _        t          |          | _        | j                            dd ||||d           d {V  | j                            dd ||d           d {V }|                     |           d {V  d S )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

m  &*	 	
 	
 		
 		
 		
 		
 		
 		
 		
  =--'E'E
 
 
 
 
 
 
 

 ++J77777777777r'   c                    K   t          t                                }| j                            dd |           d {V }|                     |           d {V  d S )Nr0   )r   r1   r3   r4   r5   )r$   r)   r(   r6   r7   s        r&   start_chunkzTracing.start_chunkF   so      !&((++=--.A4PPPPPPPP
++J77777777777r'   r7   c                    K   | j         s!d| _         | j                            d           | j        j                            | j        || j                   d {V | _        d S )NT)r    _connectionset_is_tracinglocal_utilstracing_startedr!   r   r   )r$   r7   s     r&   r5   z Tracing._start_collecting_stacksK   s{       	2#D++D111 $ 0 < L Lj$-!
 !
 
 
 
 
 
 
r'   pathc                 @   K   |                      |           d {V  d S N)_do_stop_chunkr$   r@   s     r&   
stop_chunkzTracing.stop_chunkS   s2      !!$'''''''''''r'   c                    K   |                      |           d {V  | j                            dd            d {V  d S )NtracingStop)rC   r3   r4   rD   s     r&   stopzTracing.stopV   st      !!$'''''''''m  
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
r'   	file_pathc                   K   |                                   |sW| j                            dd ddi           d {V  | j        r*| j        j                            | j                   d {V  d S | j        j         }|rn| j                            dd ddi           d {V }| j        j        	                    t          |          |d         | j        d| j        d           d {V  d S | j                            dd ddi           d {V }t          t          t                   t          |                    d                              }|s3| j        r*| j        j                            | j                   d {V  d S |                    |           d {V  |                                 d {V  | j        j        	                    t          |          g | j        d	| j        d           d {V  d S )
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SSSSSS T&2BB4?SSSSSSSSSF'11 	=<<"D69*=       F ".22"9~~%i0 $#&*&;          F}88	
 
 
 
 
 
 
 
 X!&**Z"8"899
 
  	 T&2BB4?SSSSSSSSSF y)))))))))oo*..y>> O "&"7 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
r'   c                 Z    | j         r#d| _         | j                            d           d S d S r   )r    r<   r=   r$   s    r&   rV   zTracing._reset_stack_counter   s<     	3$D++E22222	3 	3r'   locationc                     K    j                             dd t          t                                           d {V  t	           fd           S )NtracingGroupc                  ,                                      S rB   )	group_endrb   s   r&   <lambda>zTracing.group.<locals>.<lambda>   s    dnn&6&6 r'   )r3   r4   r   r1   r   )r$   r(   rc   s   `  r&   groupzTracing.group   s\       m  7G7Q7QRRRRRRRRR6666===r'   c                 L   K   | j                             dd            d {V  d S )NtracingGroupEnd)r3   r4   rb   s    r&   rg   zTracing.group_end   sN      m  
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
r'   content)attachembedomitrL   )fullminimal	urlFilterc                     K    j         rt          d          t          |                              d          }|rdnd}                     |d ||p||pd           d {V  _         t           fd           S )Nz&HAR recording has already been started.ziprm   rn   rp   )harpageurlupdate_contentupdate_modec                  ,                                      S rB   )stop_harrb   s   r&   rh   z#Tracing.start_har.<locals>.<lambda>   s    dmmoo r'   )r"   r   r[   endswith_record_into_harr   )r$   r@   rl   rL   rr   is_zipdefault_contents   `      r&   	start_harzTracing.start_har   s       < 	B@AAAT##F+++HHG 	 "22"5o 3 
 
 
 
 
 
 
 
 5555t<<<r'   ru   rv   rw   rx   ry   resourcesDirc                   K   t          |                              d          }d }d }	d }
t          t                     r}n*(j        }	d                    fddD                       }
|pd|pd|rd nt          |          d}|||d<   |	|	|d	<   |
|
|d
<   |||d<   d|i}|
|j        |d<   | j                            dd |           d {V }|d         }dt          |          i| j        |<   |S )Nrt    c              3   6   K   | ]\  }}j         |z  |V  d S rB   )flags).0flagmaskrw   s      r&   	<genexpr>z+Tracing._record_into_har.<locals>.<genexpr>   sH       & &D$9t#&& & & & & &r'   ))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   sp      S""6**"&*.)-c3 	HH_"{ gg & & & &"A& & &  O &1,9%3tt3s88&
 &

 !)GI'(8G$%&'6GO$#&2GN#"+W!5!]F6N}88T6RRRRRRRR'-s3xx&8F#r'   c                    K   t          | j                                                  D ]}|                     |           d {V  d | _        d S rB   )listr#   keys_export_harr"   r$   r   s     r&   _export_all_harszTracing._export_all_hars   s`      4.335566 	+ 	+F""6**********r'   c                 d   K   | j         }|sd S d | _         |                     |           d {V  d S rB   )r"   r   r   s     r&   r{   zTracing.stop_har   sM       	Fv&&&&&&&&&&&r'   r   c                   K   | j                             |d           }|sd S | j        j         }|d                             d          }|ra| j                            dd |dd           d {V }|sd S | j        j                            |d         |d         ddd           d {V  d S | j                            dd |d	d           d {V }t          t          t          |d
                             }|r=|                    |d                    d {V  |                                 d {V  d S |                    |d         dz              d {V  |                                 d {V  d S )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6 	F'11((00 	=<<TVY#G#G       F  ".22%f~%i0#&+	          F}88CC
 
 
 
 
 
 
 
 ,vj/A"B"BCC 	""6&>222222222//#########Fvf~6777777777oor'   )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      s~       
<"
<*-
<58
<GK
<	
< 
< 
< 
< 
< 
<  8 88 8 	8
 8 8 8 
8 8 8 888 8s 8 8 8 8 8 8

 
 
 
 
 
( (U7<+<%= ( ( ( ( (
 
uW\3%67 
4 
 
 
 
:
 :
eGL#4E.F :
RV :
 :
 :
 :
x3 3 3 3 ;?> >>#7>	> > > >
 
 
 
 7;+/.2= =GL#%&= 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      s    E E E E E E E E E E E E E E E E E E A A A A A A / / / / / /         
 8 7 7 7 7 7 < < < < < < < <|  |  |  |  | l |  |  |  |  | r'   