o
    $[i                     @   sh   d dl Z d dl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 d dlmZ G dd deZdS )	    N)DictOptionalUnioncast)TracingGroupLocation)Artifact)ChannelOwnerfrom_nullable_channel)locals_to_paramsc                       s  e Zd Zdededededdf
 fddZ					d$d	ed
ededededdfddZd%d
ed	eddfddZ	deddfddZ
d&deejef ddfddZd&deejef ddfddZd&deejef ddfddZd'ddZd&d	ededdfd d!Zd'd"d#Z  ZS )(TracingparenttypeguidinitializerreturnNc                    s8   t  |||| | j  d| _d | _d| _d | _d S NF)super__init___channelmark_as_internal_type_include_sources
_stacks_id_is_tracing_traces_dir)selfr   r   r   r   	__class__ Y/var/www/html/flask_server/venv/lib/python3.10/site-packages/playwright/_impl/_tracing.pyr      s   

zTracing.__init__nametitle	snapshotsscreenshotssourcesc                    sX   t t }t|| _| jd|I d H  | jd||dI d H }| |I d H  d S )NtracingStarttracingStartChunk)r    r   )r
   localsboolr   r   send_start_collecting_stacks)r   r   r    r!   r"   r#   params
trace_namer   r   r   start#   s   



zTracing.startc                    s4   t t }| jd|I d H }| |I d H  d S )Nr%   )r
   r&   r   r(   r)   )r   r    r   r*   r+   r   r   r   start_chunk4   s   
zTracing.start_chunkr+   c                    s8   | j sd| _ | jd | jj| j|I d H | _d S )NT)r   _connectionset_is_tracinglocal_utilstracing_startedr   r   )r   r+   r   r   r   r)   9   s   z Tracing._start_collecting_stackspathc                    s   |  |I d H  d S N)_do_stop_chunkr   r2   r   r   r   
stop_chunkA   s   zTracing.stop_chunkc                    s(   |  |I d H  | jdI d H  d S )NtracingStop)r4   r   r(   r5   r   r   r   stopD   s   zTracing.stop	file_pathc                    s:  |    |s#| jdddiI d H  | jr!| jj| jI d H  d S | jj }|rN| jdddiI d H }| jj	t
||d | jd| jdI d H  d S | jdddiI d H }ttt t|d}|sx| jrv| jj| jI d H  d S ||I d H  | I d H  | jj	t
|g | jd	| jdI d H  d S )
NtracingStopChunkmodediscardentrieswrite)zipFiler=   stacksIdr;   includeSourcesarchiveartifactappend)_reset_stack_counterr   r(   r   r.   r0   trace_discarded	is_remotesend_return_as_dictzipstrr   r   r   r   r	   getsave_asdelete)r   r9   is_localresultrC   r   r   r   r4   H   sX   


	
zTracing._do_stop_chunkc                 C   s    | j rd| _ | jd d S d S r   )r   r.   r/   r   r   r   r   rE      s   zTracing._reset_stack_counterlocationc                    s    | j dtt I d H  d S )NtracingGroup)r   r(   r
   r&   )r   r   rQ   r   r   r   group   s   zTracing.groupc                    s   | j dI d H  d S )NtracingGroupEnd)r   r(   rP   r   r   r   	group_end   s   zTracing.group_end)NNNNN)NNr3   )r   N)__name__
__module____qualname__r   rJ   r   r   r'   r,   r-   r)   r   pathlibPathr6   r8   r4   rE   r   rS   rU   __classcell__r   r   r   r   r      sL    

;r   )rY   typingr   r   r   r    playwright._impl._api_structuresr   playwright._impl._artifactr   playwright._impl._connectionr   r	   playwright._impl._helperr
   r   r   r   r   r   <module>   s   