
     fC                    ^   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
 ddl	mZ e G d d	                      Ze G d
 d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      ZdBdZdBdZdCd!ZdDd$ZdBd%Z	 	 	 dEdFd+ZdBd,ZdGd.ZdBd/ZdBd0ZdHd2Z dId4Z!dBd5Z"dBd6Z#dJd8Z$ ed9          e G d: d;                                  Z% ed<          e G d= d>                                  Z& ed?          e G d@ dA                                  Z'dS )K    )annotations   )event_classT_JSON_DICT)	dataclassN)debugger)runtimec                  |    e Zd ZU dZded<   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dS )ProfileNodezY
    Profile node. Holds callsite information, execution statistics and child nodes.
    intid_zruntime.CallFrame
call_frameNztyping.Optional[int]	hit_count!typing.Optional[typing.List[int]]childrentyping.Optional[str]deopt_reasonz.typing.Optional[typing.List[PositionTickInfo]]position_ticksc                   t                      }| j        |d<   | j                                        |d<   | j        
| j        |d<   | j        d | j        D             |d<   | j        
| j        |d<   | j        d | j        D             |d<   |S )	Nid	callFramehitCountc                    g | ]}|S  r   .0is     r/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/selenium/webdriver/common/devtools/v85/profiler.py
<listcomp>z'ProfileNode.to_json.<locals>.<listcomp>/   s    999a999    r   deoptReasonc                6    g | ]}|                                 S r   to_jsonr   s     r   r   z'ProfileNode.to_json.<locals>.<listcomp>3   s     $N$N$NQQYY[[$N$N$Nr    positionTicks)dictr   r   r$   r   r   r   r   selfjsons     r   r$   zProfileNode.to_json(   s    vvXT
 O3355[>%#~D=$994=999D("&"3D*$N$N$:M$N$N$ND!r    c           
     L    | t          |d                   t          j                            |d                   d|v rt          |d                   nd d|v rd |d         D             nd d|v rt	          |d                   nd d|v rd |d         D             nd 	          S )
Nr   r   r   r   c                ,    g | ]}t          |          S r   r   r   s     r   r   z)ProfileNode.from_json.<locals>.<listcomp><   s    777c!ff777r    r!   r%   c                B    g | ]}t                               |          S r   )PositionTickInfo	from_jsonr   s     r   r   z)ProfileNode.from_json.<locals>.<listcomp>>   s'    YYYa,66q99YYYr    )r   r   r   r   r   r   )r   r	   	CallFramer/   strclsr)   s     r   r/   zProfileNode.from_json6   s    sDJ(2243DEE/9T/A/Ac$z*+++t;E;M;M77d:&67777SW5Bd5J5JT-0111PT]lpt]t]tYY4CXYYYYz~
 
 
 	
r    )__name__
__module____qualname____doc____annotations__r   r   r   r   r$   classmethodr/   r   r    r   r   r      s           HHH "!!! '+I**** 37H6666 *.L---- FJNIIII   
 
 [
 
 
r    r   c                  j    e Zd ZU dZded<   ded<   ded<   dZded	<   dZded
<   d Zed             Z	dS )Profilez
    Profile.
    ztyping.List[ProfileNode]nodesfloat
start_timeend_timeNr   samplestime_deltasc                    t                      }d | j        D             |d<   | j        |d<   | j        |d<   | j        d | j        D             |d<   | j        d | j        D             |d<   |S )	Nc                6    g | ]}|                                 S r   r#   r   s     r   r   z#Profile.to_json.<locals>.<listcomp>Y        999999r    r<   	startTimeendTimec                    g | ]}|S r   r   r   s     r   r   z#Profile.to_json.<locals>.<listcomp>]   s    777Qq777r    r@   c                    g | ]}|S r   r   r   s     r   r   z#Profile.to_json.<locals>.<listcomp>_   s    !>!>!>!!>!>!>r    
timeDeltas)r&   r<   r>   r?   r@   rA   r'   s     r   r$   zProfile.to_jsonW   s    vv99dj999W O[-Y<#77$,777DO'!>!>T-=!>!>!>Dr    c           	          | d |d         D             t          |d                   t          |d                   d|v rd |d         D             nd d|v rd |d         D             nd 	          S )
Nc                B    g | ]}t                               |          S r   )r   r/   r   s     r   r   z%Profile.from_json.<locals>.<listcomp>e   s&    CCC;((++CCCr    r<   rE   rF   r@   c                ,    g | ]}t          |          S r   r,   r   s     r   r   z%Profile.from_json.<locals>.<listcomp>h   s    555SVV555r    rI   c                ,    g | ]}t          |          S r   r,   r   s     r   r   z%Profile.from_json.<locals>.<listcomp>i   s    <<<AQ<<<r    )r<   r>   r?   r@   rA   r=   r2   s     r   r/   zProfile.from_jsonb   s    sCCT']CCCT+.//4	?++9Bd9J9J55T)_5555PT@LPT@T@T<<l);<<<<Z^
 
 
 	
r    )
r4   r5   r6   r7   r8   r@   rA   r$   r9   r/   r   r    r   r;   r;   B   s           $###  OOO 26G5555 6:K9999	 	 	 
 
 [
 
 
r    r;   c                  D    e Zd ZU dZded<   ded<   d Zed             ZdS )r.   zP
    Specifies a number of samples attributed to a certain source position.
    r   lineticksc                J    t                      }| j        |d<   | j        |d<   |S )NrP   rQ   )r&   rP   rQ   r'   s     r   r$   zPositionTickInfo.to_jsonx   &    vvyV
Wr    c                h     | t          |d                   t          |d                             S )NrP   rQ   )rP   rQ   r,   r2   s     r   r/   zPositionTickInfo.from_json~   9    sT&\""d7m$$
 
 
 	
r    Nr4   r5   r6   r7   r8   r$   r9   r/   r   r    r   r.   r.   m   `           III JJJ   
 
 [
 
 
r    r.   c                  N    e Zd ZU dZded<   ded<   ded<   d Zed             ZdS )	CoverageRangez+
    Coverage data for a source range.
    r   start_offset
end_offsetcountc                ^    t                      }| j        |d<   | j        |d<   | j        |d<   |S )NstartOffset	endOffsetr\   )r&   rZ   r[   r\   r'   s     r   r$   zCoverageRange.to_json   s4    vv"/] O[
Wr    c                     | t          |d                   t          |d                   t          |d                             S )Nr^   r_   r\   )rZ   r[   r\   r,   r2   s     r   r/   zCoverageRange.from_json   sJ    sT-0114,--d7m$$
 
 
 	
r    NrV   r   r    r   rY   rY      sn            OOO JJJ   
 
 [
 
 
r    rY   c                  N    e Zd ZU dZded<   ded<   ded<   d Zed	             Zd
S )FunctionCoveragez2
    Coverage data for a JavaScript function.
    r1   function_nameztyping.List[CoverageRange]rangesboolis_block_coveragec                r    t                      }| j        |d<   d | j        D             |d<   | j        |d<   |S )NfunctionNamec                6    g | ]}|                                 S r   r#   r   s     r   r   z,FunctionCoverage.to_json.<locals>.<listcomp>   s     ;;;!!))++;;;r    rd   isBlockCoverage)r&   rc   rd   rf   r'   s     r   r$   zFunctionCoverage.to_json   sD    vv#1^;;t{;;;X"&"8r    c                     | t          |d                   d |d         D             t          |d                             S )Nrh   c                B    g | ]}t                               |          S r   )rY   r/   r   s     r   r   z.FunctionCoverage.from_json.<locals>.<listcomp>   s&    GGG1M++A..GGGr    rd   rj   )rc   rd   rf   )r1   re   r2   s     r   r/   zFunctionCoverage.from_json   sQ    sd>233GGXGGG"4(9#:;;
 
 
 	
r    NrV   r   r    r   rb   rb      st            '&&&    
 
 [
 
 
r    rb   c                  N    e Zd ZU dZded<   ded<   ded<   d Zed	             Zd
S )ScriptCoveragez0
    Coverage data for a JavaScript script.
    runtime.ScriptId	script_idr1   urlztyping.List[FunctionCoverage]	functionsc                    t                      }| j                                        |d<   | j        |d<   d | j        D             |d<   |S )NscriptIdrq   c                6    g | ]}|                                 S r   r#   r   s     r   r   z*ScriptCoverage.to_json.<locals>.<listcomp>   s     AAAQQYY[[AAAr    rr   )r&   rp   r$   rq   rr   r'   s     r   r$   zScriptCoverage.to_json   sM    vv>1133ZhUAA$.AAA[r    c                     | t           j                            |d                   t          |d                   d |d         D                       S )Nrt   rq   c                B    g | ]}t                               |          S r   )rb   r/   r   s     r   r   z,ScriptCoverage.from_json.<locals>.<listcomp>   s'    PPP'11!44PPPr    rr   )rp   rq   rr   r	   ScriptIdr/   r1   r2   s     r   r/   zScriptCoverage.from_json   sY    s&00j1ABBDK  PPd;>OPPP
 
 
 	
r    NrV   r   r    r   rn   rn      sq             HHH -,,,   
 
 [
 
 
r    rn   c                  :    e Zd ZU dZded<   d Zed             ZdS )
TypeObjectz4
    Describes a type collected during runtime.
    r1   namec                6    t                      }| j        |d<   |S )Nr|   )r&   r|   r'   s     r   r$   zTypeObject.to_json   s    vvyVr    c                @     | t          |d                             S )Nr|   )r|   )r1   r2   s     r   r/   zTypeObject.from_json   s*    sT&\""
 
 
 	
r    NrV   r   r    r   r{   r{      sU           III  
 
 
 [
 
 
r    r{   c                  D    e Zd ZU dZded<   ded<   d Zed             ZdS )	TypeProfileEntryzB
    Source offset and types for a parameter or return value.
    r   offsetztyping.List[TypeObject]typesc                ^    t                      }| j        |d<   d | j        D             |d<   |S )Nr   c                6    g | ]}|                                 S r   r#   r   s     r   r   z,TypeProfileEntry.to_json.<locals>.<listcomp>  rD   r    r   )r&   r   r   r'   s     r   r$   zTypeProfileEntry.to_json   s4    vvX99dj999Wr    c                b     | t          |d                   d |d         D                       S )Nr   c                B    g | ]}t                               |          S r   )r{   r/   r   s     r   r   z.TypeProfileEntry.from_json.<locals>.<listcomp>	  s&    BBBq:''**BBBr    r   )r   r   r,   r2   s     r   r/   zTypeProfileEntry.from_json  s?    stH~&&BBDMBBB
 
 
 	
r    NrV   r   r    r   r   r      sc           KKK #"""   
 
 [
 
 
r    r   c                  N    e Zd ZU dZded<   ded<   ded<   d Zed	             Zd
S )ScriptTypeProfilezM
    Type profile data collected during runtime for a JavaScript script.
    ro   rp   r1   rq   ztyping.List[TypeProfileEntry]entriesc                    t                      }| j                                        |d<   | j        |d<   d | j        D             |d<   |S )Nrt   rq   c                6    g | ]}|                                 S r   r#   r   s     r   r   z-ScriptTypeProfile.to_json.<locals>.<listcomp>  s     ===1199;;===r    r   )r&   rp   r$   rq   r   r'   s     r   r$   zScriptTypeProfile.to_json  sL    vv>1133ZhU=====Yr    c                     | t           j                            |d                   t          |d                   d |d         D                       S )Nrt   rq   c                B    g | ]}t                               |          S r   )r   r/   r   s     r   r   z/ScriptTypeProfile.from_json.<locals>.<listcomp>'  s'    LLLq%//22LLLr    r   )rp   rq   r   rx   r2   s     r   r/   zScriptTypeProfile.from_json"  sX    s&00j1ABBDK  LLDOLLL
 
 
 	
r    NrV   r   r    r   r   r     sq             HHH +***   
 
 [
 
 
r    r   c                  D    e Zd ZU dZded<   ded<   d Zed             ZdS )	CounterInfoz(
    Collected counter information.
    r1   r|   r   valuec                J    t                      }| j        |d<   | j        |d<   |S )Nr|   r   )r&   r|   r   r'   s     r   r$   zCounterInfo.to_json6  rS   r    c                h     | t          |d                   t          |d                             S )Nr|   r   )r|   r   )r1   r   r2   s     r   r/   zCounterInfo.from_json<  rU   r    NrV   r   r    r   r   r   +  rW   r    r   return0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c               #     K   ddi} | V }d S )NmethodzProfiler.disabler   cmd_dictr)   s     r   disabler   D  s$       	$H >>DDDr    c               #     K   ddi} | V }d S )Nr   zProfiler.enabler   r   s     r   enabler   L  s$       	#H >>DDDr    Gtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[ScriptCoverage]]c               #  :   K   ddi} | V }d |d         D             S )z
    Collect coverage data for the current isolate. The coverage data may be incomplete due to
    garbage collection.

    :returns: Coverage data for the current isolate.
    r   zProfiler.getBestEffortCoveragec                B    g | ]}t                               |          S r   rn   r/   r   s     r   r   z,get_best_effort_coverage.<locals>.<listcomp>_  s&    @@@AN$$Q''@@@r    resultr   r   s     r   get_best_effort_coverager   T  s8       	2H >>D@@h@@@@r    intervalr   c              #  B   K   t                      }| |d<   d|d}|V }dS )z
    Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.

    :param interval: New sampling interval in microseconds.
    r   zProfiler.setSamplingIntervalr   paramsN)r&   )r   r   r   r)   s       r   set_sampling_intervalr   b  s<       &&F!F:0 H >>DDDr    c               #     K   ddi} | V }d S )Nr   zProfiler.startr   r   s     r   startr   s  s$       	"H >>DDDr    
call_counttyping.Optional[bool]detailedallow_triggered_updates1typing.Generator[T_JSON_DICT, T_JSON_DICT, float]c              #     K   t                      }| | |d<   |||d<   |||d<   d|d}|V }t          |d                   S )aW  
    Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code
    coverage may be incomplete. Enabling prevents running optimized code and resets execution
    counters.

    :param call_count: *(Optional)* Collect accurate call counts beyond simple 'covered' or 'not covered'.
    :param detailed: *(Optional)* Collect block-based coverage.
    :param allow_triggered_updates: *(Optional)* Allow the backend to send updates on its own initiative
    :returns: Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
    N	callCountr   allowTriggeredUpdateszProfiler.startPreciseCoverager   	timestamp)r&   r=   )r   r   r   r   r   r)   s         r   start_precise_coverager   {  sr       &&F({%z**A&'1 H >>Dk"###r    c               #     K   ddi} | V }dS )z4
    Enable type profile.

    **EXPERIMENTAL**
    r   zProfiler.startTypeProfileNr   r   s     r   start_type_profiler     s$       	-H >>DDDr    3typing.Generator[T_JSON_DICT, T_JSON_DICT, Profile]c               #  V   K   ddi} | V }t                               |d                   S )z'


    :returns: Recorded profile.
    r   zProfiler.stopprofile)r;   r/   r   s     r   stopr     s7       	/H >>DT)_---r    c               #     K   ddi} | V }dS )z
    Disable precise code coverage. Disabling releases unnecessary execution count records and allows
    executing optimized code.
    r   zProfiler.stopPreciseCoverageNr   r   s     r   stop_precise_coverager     s$       	0H >>DDDr    c               #     K   ddi} | V }dS )zl
    Disable type profile. Disabling releases type profile data collected so far.

    **EXPERIMENTAL**
    r   zProfiler.stopTypeProfileNr   r   s     r   stop_type_profiler     s$       	,H >>DDDr    \typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.List[ScriptCoverage], float]]c               #  d   K   ddi} | V }d |d         D             t          |d                   fS )ar  
    Collect coverage data for the current isolate, and resets execution counters. Precise code
    coverage needs to have started.

    :returns: A tuple with the following items:

        0. **result** - Coverage data for the current isolate.
        1. **timestamp** - Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
    r   zProfiler.takePreciseCoveragec                B    g | ]}t                               |          S r   r   r   s     r   r   z)take_precise_coverage.<locals>.<listcomp>  s&    ===	!	!!	$	$===r    r   r   rN   r   s     r   take_precise_coverager     sO       	0H >>D==d8n===d;   r    Jtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[ScriptTypeProfile]]c               #  :   K   ddi} | V }d |d         D             S )z
    Collect type profile.

    **EXPERIMENTAL**

    :returns: Type profile for all scripts since startTypeProfile() was turned on.
    r   zProfiler.takeTypeProfilec                B    g | ]}t                               |          S r   )r   r/   r   s     r   r   z%take_type_profile.<locals>.<listcomp>  s'    CCCq''**CCCr    r   r   r   s     r   take_type_profiler     s8       	,H >>DCCDNCCCCr    c               #     K   ddi} | V }dS )zF
    Enable run time call stats collection.

    **EXPERIMENTAL**
    r   zProfiler.enableRuntimeCallStatsNr   r   s     r   enable_runtime_call_statsr     s$       	3H >>DDDr    c               #     K   ddi} | V }dS )zG
    Disable run time call stats collection.

    **EXPERIMENTAL**
    r   z Profiler.disableRuntimeCallStatsNr   r   s     r   disable_runtime_call_statsr     s$       	4H >>DDDr    Dtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[CounterInfo]]c               #  :   K   ddi} | V }d |d         D             S )zk
    Retrieve run time call stats.

    **EXPERIMENTAL**

    :returns: Collected counter information.
    r   zProfiler.getRuntimeCallStatsc                B    g | ]}t                               |          S r   )r   r/   r   s     r   r   z*get_runtime_call_stats.<locals>.<listcomp>  s&    ===K!!!$$===r    r   r   r   s     r   get_runtime_call_statsr     s8       	0H >>D==d8n====r    zProfiler.consoleProfileFinishedc                  P    e Zd ZU ded<   ded<   ded<   ded<   edd            ZdS )ConsoleProfileFinishedr1   r   debugger.Locationlocationr;   r   r   titler)   r   r   c           	          | t          |d                   t          j                            |d                   t                              |d                   d|v rt          |d                   nd           S )Nr   r   r   r   )r   r   r   r   )r1   r   Locationr/   r;   r2   s     r   r/   z ConsoleProfileFinished.from_json  sr    sDJ&00j1ABB%%d9o66(/4#d7m$$$T	
 
 
 	
r    N)r)   r   r   r   )r4   r5   r6   r8   r9   r/   r   r    r   r   r     sc          HHH
 
 
 [
 
 
r    r   zProfiler.consoleProfileStartedc                  J    e Zd ZU dZded<   ded<   ded<   edd            ZdS )ConsoleProfileStartedzR
    Sent when new profile recording is started using console.profile() call.
    r1   r   r   r   r   r   r)   r   r   c                     | t          |d                   t          j                            |d                   d|v rt          |d                   nd           S )Nr   r   r   )r   r   r   )r1   r   r   r/   r2   s     r   r/   zConsoleProfileStarted.from_json3  s]    sDJ&00j1ABB(/4#d7m$$$T
 
 
 	
r    N)r)   r   r   r   r4   r5   r6   r7   r8   r9   r/   r   r    r   r   r   '  sa           HHH
 
 
 [
 
 
r    r   z#Profiler.preciseCoverageDeltaUpdatec                  J    e Zd ZU dZded<   ded<   ded<   edd            ZdS )PreciseCoverageDeltaUpdateat  
    **EXPERIMENTAL**

    Reports coverage delta since the last poll (either from an event like this, or from
    ``takePreciseCoverage`` for the current isolate. May only be sent if precise code
    coverage has been started. This event can be trigged by the embedder to, for example,
    trigger collection of coverage data immediatelly at a certain point in time.
    r=   r   r1   	occassionztyping.List[ScriptCoverage]r   r)   r   r   c                     | t          |d                   t          |d                   d |d         D                       S )Nr   r   c                B    g | ]}t                               |          S r   r   r   s     r   r   z8PreciseCoverageDeltaUpdate.from_json.<locals>.<listcomp>S  s&    HHHAN,,Q//HHHr    r   )r   r   r   )r=   r1   r2   s     r   r/   z$PreciseCoverageDeltaUpdate.from_jsonN  sP    sD-..${+,,HHhHHH
 
 
 	
r    N)r)   r   r   r   r   r   r    r   r   r   <  sa           NNN''''
 
 
 [
 
 
r    r   )r   r   )r   r   )r   r   r   r   )NNN)r   r   r   r   r   r   r   r   )r   r   )r   r   )r   r   )r   r   )(
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r   r;   r.   rY   rb   rn   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   <module>r      s   # " " " " " * * * * * * * * ! ! ! ! ! !               .
 .
 .
 .
 .
 .
 .
 .
b '
 '
 '
 '
 '
 '
 '
 '
T 
 
 
 
 
 
 
 
0 
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
& 
 
 
 
 
 
 
 
0 
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
0      A A A A   "    -1*.9=$ $ $ $ $<	 	 	 	
. 
. 
. 
.   	 	 	 	   (D D D D	 	 	 		 	 	 	> > > > .//

 
 
 
 
 
 
  0/
$ -..

 
 
 
 
 
 
  /.
& 233

 
 
 
 
 
 
  43
 
 
r    