
    g+                    n   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e G d d             Ze G d d             Z	 	 	 	 d*dZd+dZd+dZd+dZ	 	 	 	 d,dZ	 d-	 	 	 	 	 d.dZd/dZ	 d-	 	 	 d0dZ	 d-	 	 	 d1dZd/dZ	 	 d2	 	 	 	 	 d3dZ	 	 d2	 	 	 	 	 d3dZ ed      e G d d                    Z ed      e G 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)4    )annotations   )event_classT_JSON_DICT)	dataclassN)runtimec                  <     e Zd ZdZddZedd       Z fdZ xZS )HeapSnapshotObjectIdz"
    Heap snapshot object id.
    c                    | S N )selfs    g/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/heap_profiler.pyto_jsonzHeapSnapshotObjectId.to_json   s        c                     | |      S r   r   clsjsons     r   	from_jsonzHeapSnapshotObjectId.from_json   s    4yr   c                >    dj                  t        | 	               S )NzHeapSnapshotObjectId({}))formatsuper__repr__)r   	__class__s    r   r   zHeapSnapshotObjectId.__repr__   s    )001A1CDDr   )returnstr)r   r   r   r
   )	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__)r   s   @r   r
   r
      s-      E Er   r
   c                  P    e Zd ZU dZded<   ded<   ded<   ded	<   d
 Zed        Zy)SamplingHeapProfileNodezh
    Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes.
    zruntime.CallFrame
call_framefloat	self_sizeintid_z$typing.List[SamplingHeapProfileNode]childrenc                    t               }| j                  j                         |d<   | j                  |d<   | j                  |d<   | j
                  D cg c]  }|j                          c}|d<   |S c c}w )N	callFrameselfSizeidr+   )dictr&   r   r(   r*   r+   r   r   is      r   r   zSamplingHeapProfileNode.to_json/   se    v OO335[>>ZXXT
15?AAIIK?Z @s   A3c                     | t         j                  j                  |d         t        |d         t	        |d         |d   D cg c]  }t
        j                  |       c}      S c c}w )Nr-   r.   r/   r+   )r&   r(   r*   r+   )r   	CallFramer   r'   r)   r%   r   r   r2   s      r   r   z!SamplingHeapProfileNode.from_json7   se    ((2243DED,-DJDHDTUq-77:U	
 	
 Vs   A)Nr   r   r    r!   __annotations__r   r"   r   r   r   r   r%   r%      s?     "!  
H 32 
 
r   r%   c                  F    e Zd ZU dZded<   ded<   ded<   d Zed        Zy	)
SamplingHeapProfileSamplez2
    A single sample from a sampling profile.
    r'   sizer)   node_idordinalc                t    t               }| j                  |d<   | j                  |d<   | j                  |d<   |S )Nr:   nodeIdr<   )r0   r:   r;   r<   )r   r   s     r   r   z!SamplingHeapProfileSample.to_jsonP   s5    vyyVX,,Yr   c                `     | t        |d         t        |d         t        |d               S )Nr:   r>   r<   )r:   r;   r<   )r'   r)   r   s     r   r   z#SamplingHeapProfileSample.from_jsonW   s3    tF|$X'$y/*
 	
r   Nr6   r   r   r   r9   r9   A   s5     K L N 
 
r   r9   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	SamplingHeapProfilez
    Sampling profile.
    r%   headz&typing.List[SamplingHeapProfileSample]samplesc                    t               }| j                  j                         |d<   | j                  D cg c]  }|j                          c}|d<   |S c c}w )NrB   rC   )r0   rB   r   rC   r1   s      r   r   zSamplingHeapProfile.to_jsoni   sG    vyy((*V04=1199;=Y >s   Ac           	          | t         j                  |d         |d   D cg c]  }t        j                  |       c}      S c c}w )NrB   rC   )rB   rC   )r%   r   r9   r5   s      r   r   zSamplingHeapProfile.from_jsono   sB    (224<@EI)_U.88;U
 	
Us   A
Nr6   r   r   r   rA   rA   `   s.     "!33 
 
r   rA   c              #  X   K   t               }| j                         |d<   d|d}|}yw)z
    Enables console to refer to the node with given id via $x (see Command Line API for more details
    $x functions).

    :param heap_object_id: Heap snapshot object id to be accessible by means of $x command line API.
    heapObjectIdz#HeapProfiler.addInspectedHeapObjectmethodparamsN)r0   r   )heap_object_idrJ   cmd_dictr   s       r   add_inspected_heap_objectrM   w   s8      &F+335F>7H >Ds   (*c               #     K   ddi} | }y w)NrI   zHeapProfiler.collectGarbager   rL   r   s     r   collect_garbagerP      s      	/H >D   
c               #     K   ddi} | }y w)NrI   zHeapProfiler.disabler   rO   s     r   disablerS      s      	(H >DrQ   c               #     K   ddi} | }y w)NrI   zHeapProfiler.enabler   rO   s     r   enablerU      s      	'H >DrQ   c              #     K   t               }| j                         |d<   d|d}|}t        j                  |d         S w)z
    :param object_id: Identifier of the object to get heap object id for.
    :returns: Id of the heap snapshot object corresponding to the passed remote object id.
    objectIdzHeapProfiler.getHeapObjectIdrH   heapSnapshotObjectId)r0   r   r
   r   )	object_idrJ   rL   r   s       r   get_heap_object_idrZ      sO      &F"**,F:0H >D))$/E*FGGs   ?Ac              #     K   t               }| j                         |d<   |||d<   d|d}|}t        j                  j	                  |d         S w)z
    :param object_id:
    :param object_group: *(Optional)* Symbolic group name that can be used to release multiple objects.
    :returns: Evaluation result.
    rW   objectGroupz$HeapProfiler.getObjectByHeapObjectIdrH   result)r0   r   r   RemoteObjectr   )rY   object_grouprJ   rL   r   s        r   get_object_by_heap_object_idr`      sc      &F"**,F: ,}8H >D))$x.99s   AAc               #  J   K   ddi} | }t         j                  |d         S w)zB


    :returns: Return the sampling profile being collected.
    rI   zHeapProfiler.getSamplingProfileprofilerA   r   rO   s     r   get_sampling_profilerd      s3      	3H >D((i99   !#c              #  @   K   t               }| | |d<   d|d}|}yw)z
    :param sampling_interval: *(Optional)* Average sample interval in bytes. Poisson distribution is used for the intervals. The default value is 32768 bytes.
    NsamplingIntervalzHeapProfiler.startSamplingrH   r0   )sampling_intervalrJ   rL   r   s       r   start_samplingrj      s6      &F$%6!".H >D   c              #  @   K   t               }| | |d<   d|d}|}yw)z0
    :param track_allocations: *(Optional)*
    NtrackAllocationsz%HeapProfiler.startTrackingHeapObjectsrH   rh   )track_allocationsrJ   rL   r   s       r   start_tracking_heap_objectsro      s6      &F$%6!"9H >Drk   c               #  J   K   ddi} | }t         j                  |d         S w)z5


    :returns: Recorded sampling heap profile.
    rI   zHeapProfiler.stopSamplingrb   rc   rO   s     r   stop_samplingrq      s3      	-H >D((i99re   c              #  N   K   t               }| | |d<   |||d<   d|d}|}yw)z
    :param report_progress: *(Optional)* If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped.
    :param treat_global_objects_as_roots: *(Optional)*
    NreportProgresstreatGlobalObjectsAsRootsz$HeapProfiler.stopTrackingHeapObjectsrH   rh   report_progresstreat_global_objects_as_rootsrJ   rL   r   s        r   stop_tracking_heap_objectsrx     sG      &F"#2 $0.K*+8H >D   #%c              #  N   K   t               }| | |d<   |||d<   d|d}|}yw)a  
    :param report_progress: *(Optional)* If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken.
    :param treat_global_objects_as_roots: *(Optional)* If true, a raw snapshot without artifical roots will be generated
    Nrs   rt   zHeapProfiler.takeHeapSnapshotrH   rh   ru   s        r   take_heap_snapshotr{     sG      &F"#2 $0.K*+1H >Dry   z!HeapProfiler.addHeapSnapshotChunkc                  *    e Zd ZU ded<   edd       Zy)AddHeapSnapshotChunkr   chunkc                ,     | t        |d               S )Nr~   )r~   )r   r   s     r   r   zAddHeapSnapshotChunk.from_json.  s    d7m$
 	
r   N)r   r   r   r}   r   r   r    r7   r"   r   r   r   r   r}   r}   )  s     J
 
r   r}   zHeapProfiler.heapStatsUpdatec                  .    e Zd ZU dZded<   edd       Zy)HeapStatsUpdatezj
    If heap objects tracking has been started then backend may send update for one or more fragments
    ztyping.List[int]stats_updatec                R     | |d   D cg c]  }t        |       c}      S c c}w )NstatsUpdate)r   )r)   r5   s      r   r   zHeapStatsUpdate.from_json@  s)    *.}*=>Q#a&>
 	
>s   $N)r   r   r   r   r   r   r    r!   r7   r"   r   r   r   r   r   r   5  s!     #"
 
r   r   zHeapProfiler.lastSeenObjectIdc                  8    e Zd ZU dZded<   ded<   edd       Zy)	LastSeenObjectIda(  
    If heap objects tracking has been started then backend regularly sends a current value for last
    seen object id and corresponding timestamp. If the were changes in the heap since last event
    then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.
    r)   last_seen_object_idr'   	timestampc                F     | t        |d         t        |d               S )NlastSeenObjectIdr   )r   r   )r)   r'   r   s     r   r   zLastSeenObjectId.from_jsonR  s*     #D);$< =D-.
 	
r   N)r   r   r   r   r   r   r   r   r   r   G  s'    
 
 
r   r   z'HeapProfiler.reportHeapSnapshotProgressc                  >    e Zd ZU ded<   ded<   ded<   edd       Zy)	ReportHeapSnapshotProgressr)   donetotaltyping.Optional[bool]finishedc                v     | t        |d         t        |d         d|v rt        |d               S d       S )Nr   r   r   )r   r   r   )r)   boolr   s     r   r   z$ReportHeapSnapshotProgress.from_jsona  sL    T&\"d7m$/9T/AT$z*+
 	
 HL
 	
r   N)r   r   r   r   r   r   r   r   r   r   Z  s&     IJ##
 
r   r   zHeapProfiler.resetProfilesc                      e Zd Zedd       Zy)ResetProfilesc                     |        S r   r   r   s     r   r   zResetProfiles.from_jsono  s     
 	
r   N)r   r   r   r   )r   r   r    r"   r   r   r   r   r   r   j  s    
 
 
r   r   )rK   r
   r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r   r   )rY   zruntime.RemoteObjectIdr   z@typing.Generator[T_JSON_DICT, T_JSON_DICT, HeapSnapshotObjectId]r   )rY   r
   r_   ztyping.Optional[str]r   z@typing.Generator[T_JSON_DICT, T_JSON_DICT, runtime.RemoteObject])r   z?typing.Generator[T_JSON_DICT, T_JSON_DICT, SamplingHeapProfile])ri   ztyping.Optional[float]r   r   )rn   r   r   r   )NN)rv   r   rw   r   r   r   )!
__future__r   utilr   r   dataclassesr   enumtyping r   r   r
   r%   r9   rA   rM   rP   rS   rU   rZ   r`   rd   rj   ro   rq   rx   r{   r}   r   r   r   r   r   r   r   <module>r      s#   # * !   E3 E 
 
 
D 
 
 
< 
 
 
,,	7$H)H	GH& .2:':*: 
H:*
: 591	7" 480	7 
: 26?C.'< 
8* 26?C.'< 
8( 01

 
  2
 +,

 
  -
  ,-

 
  .
" 67

 
  8
 )*

 
  +
r   