
    $)f<)                       d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
  G d de      Ze G d	 d
             Z G d dej                        Z G d dej                        ZddZddZ	 	 	 	 ddZ	 d 	 	 	 d!dZ	 	 	 	 	 	 	 d"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d#dZ ed      e G d d                    Z ed      e G d d                    Z ed      e G d d                    Zy)$    )annotations   )event_classT_JSON_DICT)	dataclassN)ioc                  <     e Zd ZdZddZedd       Z fdZ xZS )MemoryDumpConfigz[
    Configuration for memory dump. Used only when "memory-infra" category is enabled.
    c                    | S N selfs    k/var/www/html/flask-app/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/tracing.pyto_jsonzMemoryDumpConfig.to_json   s        c                     | |      S r   r   clsjsons     r   	from_jsonzMemoryDumpConfig.from_json       4yr   c                >    dj                  t        | 	               S )NzMemoryDumpConfig({}))formatsuper__repr__)r   	__class__s    r   r   zMemoryDumpConfig.__repr__   s    %,,UW-=-?@@r   )returndict)r   r   r   r
   )	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__)r   s   @r   r
   r
      s-      A Ar   r
   c                      e Zd ZU dZded<   dZded<   dZded<   dZded<   dZded	<   dZ	ded
<   dZ
ded<   dZded<   d Zed        Zy)TraceConfigNtyping.Optional[str]record_modetyping.Optional[bool]enable_samplingenable_systraceenable_argument_filterz!typing.Optional[typing.List[str]]included_categoriesexcluded_categoriessynthetic_delaysz!typing.Optional[MemoryDumpConfig]memory_dump_configc                X   t               }| j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j
                  | j
                  D cg c]  }| c}|d<   | j                  | j                  D cg c]  }| c}|d<   | j                  | j                  D cg c]  }| c}|d<   | j                  | j                  j                         |d<   |S c c}w c c}w c c}w )	N
recordModeenableSamplingenableSystraceenableArgumentFilterincludedCategoriesexcludedCategoriessyntheticDelaysmemoryDumpConfig)
r   r)   r+   r,   r-   r.   r/   r0   r1   r   )r   r   is      r   r   zTraceConfig.to_json8   s+   v'!%!1!1D+%)%9%9D!"+%)%9%9D!"&&2+/+F+FD'(##/595M5M)N!)ND%&##/595M5M)N!)ND%&  ,262G2G&HQq&HD"#"".'+'>'>'F'F'HD#$ *O)N&Hs   	D:	D"#	D'c                    | d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v r|d   D cg c]  }t        |       c}nd d|v r|d   D cg c]  }t        |       c}nd d|v r|d   D cg c]  }t        |       c}nd d|v rt        j                  |d         	      S d 	      S c c}w c c}w c c}w )
Nr3   r4   r5   r6   r7   r8   r9   r:   )r)   r+   r,   r-   r.   r/   r0   r1   )strboolr
   r   r   r   r;   s      r   r   zTraceConfig.from_jsonL   s   3?43GD./T<LPT<TD&6!78Z^<LPT<TD&6!78Z^I_cgIg4-C(D#EmqPdhlPl6J1K LAQ LrvPdhlPl6J1K LAQ LrvJ[_cJcd3D.EFc!fFimWimqWq/99$?Q:RS	
 		
 x|	
 		

 !M LFs   C;CC$)r    r!   r"   r)   __annotations__r+   r,   r-   r.   r/   r0   r1   r   r$   r   r   r   r   r'   r'      s     )-K%, .2O*1 .2O*1 5918 >B:A >B:A ;?7> =A9@( 

 

r   r'   c                  .    e Zd ZdZdZdZd Zed        Zy)StreamFormatz
    Data format of a trace. Can be either the legacy JSON format or the
    protocol buffer format. Note that the JSON format will be deprecated soon.
    r   protoc                    | j                   S r   valuer   s    r   r   zStreamFormat.to_jsonb       zzr   c                     | |      S r   r   r   s     r   r   zStreamFormat.from_jsone   r   r   N)	r    r!   r"   r#   JSONPROTOr   r$   r   r   r   r   rB   rB   Z   s,     DE  r   rB   c                  .    e Zd ZdZdZdZd Zed        Zy)StreamCompressionzB
    Compression type to use for traces returned via streams.
    nonegzipc                    | j                   S r   rE   r   s    r   r   zStreamCompression.to_jsonq   rG   r   c                     | |      S r   r   r   s     r   r   zStreamCompression.from_jsont   r   r   N)	r    r!   r"   r#   NONEGZIPr   r$   r   r   r   r   rL   rL   j   s,     DD  r   rL   c               #     K   ddi} | }yw)z'
    Stop trace events collection.
    methodzTracing.endNr   )cmd_dictr   s     r   endrV   y   s     
 	-H >Ds   
c               #  \   K   ddi} | }|d   D cg c]  }t        |       c}S c c}w w)zc
    Gets supported tracing categories.

    :returns: A list of supported tracing categories.
    rT   zTracing.getCategories
categories)r=   )rU   r   r;   s      r   get_categoriesrY      s;      	)H >D ./qCF///s   ,',c              #  <   K   t               }| |d<   d|d}|}yw)zh
    Record a clock sync marker in the trace.

    :param sync_id: The ID of this clock sync marker
    syncIdzTracing.recordClockSyncMarkerrT   paramsNr   )sync_idr]   rU   r   s       r   record_clock_sync_markerr`      s/      &FF81H >Ds   c              #  v   K   t               }| | |d<   d|d}|}t        |d         t        |d         fS w)aI  
    Request a global memory dump.

    :param deterministic: *(Optional)* Enables more deterministic results by forcing garbage collection
    :returns: A tuple with the following items:

        0. **dumpGuid** - GUID of the resulting global memory dump.
        1. **success** - True iff the global memory dump succeeded.
    deterministiczTracing.requestMemoryDumpr\   dumpGuidsuccess)r   r=   r>   )rb   r]   rU   r   s       r   request_memory_dumpre      sX      &F "/-H >DDT)_ s   79c              #     K   t               }| | |d<   |||d<   |||d<   |||d<   ||j                         |d<   ||j                         |d<   ||j                         |d<   d	|d
}|}	yw)a7  
    Start trace events collection.

    :param categories: *(Optional)* Category/tag filter
    :param options: *(Optional)* Tracing options
    :param buffer_usage_reporting_interval: *(Optional)* If set, the agent will issue bufferUsage events at this interval, specified in milliseconds
    :param transfer_mode: *(Optional)* Whether to report trace events as series of dataCollected events or to save trace to a stream (defaults to ```ReportEvents````).
    :param stream_format: *(Optional)* Trace data format to use. This only applies when using ````ReturnAsStream```` transfer mode (defaults to ````json````).
    :param stream_compression: *(Optional)* Compression format to use. This only applies when using ````ReturnAsStream```` transfer mode (defaults to ````none```)
    :param trace_config: *(Optional)*
    NrX   optionsbufferUsageReportingIntervaltransferModestreamFormatstreamCompressiontraceConfigzTracing.startr\   )r   r   )
rX   rg   buffer_usage_reporting_intervaltransfer_modestream_formatstream_compressiontrace_configr]   rU   r   s
             r   startrr      s     ( &F)|#y&21P-. !.~ !.!6!6!8~%&8&@&@&B"# , 4 4 6}!H >Ds   A0A2zTracing.bufferUsagec                  >    e Zd ZU ded<   ded<   ded<   edd       Zy)BufferUsagetyping.Optional[float]percent_fullevent_countrF   c                     | d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d               S d       S )NpercentFull
eventCountrF   )rv   rw   rF   )floatr   s     r   r   zBufferUsage.from_json   s_    7D7LtM23RV5AT5Id<01t*1T/%W&
 	
 @D
 	
r   N)r   r   r   rt   )r    r!   r"   r@   r$   r   r   r   r   rt   rt      s*    
 )('' "!
 
r   rt   zTracing.dataCollectedc                  .    e Zd ZU dZded<   edd       Zy)DataCollectedz
    Contains an bucket of collected trace events. When tracing is stopped collected events will be
    send as a sequence of dataCollected events followed by tracingComplete event.
    ztyping.List[dict]rF   c                R     | |d   D cg c]  }t        |       c}      S c c}w )NrF   rE   r^   r?   s      r   r   zDataCollected.from_json  s(    $(M2q472
 	
2s   $N)r   r   r   r}   r    r!   r"   r#   r@   r$   r   r   r   r   r}   r}      s!     
 
r   r}   zTracing.tracingCompletec                  L    e Zd ZU dZded<   ded<   ded<   ded	<   edd
       Zy)TracingCompletez
    Signals that tracing is stopped and there is no trace buffers pending flush, all data were
    delivered via dataCollected events.
    r>   data_loss_occurredz typing.Optional[io.StreamHandle]streamtyping.Optional[StreamFormat]trace_format"typing.Optional[StreamCompression]rp   c           	          | t        |d         d|v r"t        j                  j                  |d         nd d|v rt        j                  |d         nd d|v rt
        j                  |d               S d       S )NdataLossOccurredr   traceFormatrk   )r   r   r   rp   )r>   r   StreamHandler   rB   rL   r   s     r   r   zTracingComplete.from_json  s    #D);$<=@HD@P2??,,T(^<VZHUY]H]//]0CDcgYlptYt0::4@S;TU	
 	
 {	
 	
r   N)r   r   r   r   r   r   r   r   r   r   
  s3     ,,//::
 
r   r   )r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r   z<typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]])r_   r=   r   r   r   )rb   r*   r   zCtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, bool]])NNNNNNN)rX   r(   rg   r(   rm   ru   rn   r(   ro   r   rp   r   rq   ztyping.Optional[TraceConfig]r   r   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   r
   r'   EnumrB   rL   rV   rY   r`   re   rr   rt   r}   r   r   r   r   <module>r      sy   # * !   At A 8
 8
 8
v499  		 
0	7$ 04,	J6 ,0(,BF.27;AE59'('%' *@' ,	'
 5' ?' 3' 
8'T "#

 
  $
& $%

 
  &
 &'

 
  (
r   