
    $)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
 ddl	m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 ed      e G d d                    Zy)    )annotations   )event_classT_JSON_DICT)	dataclassN)network)runtimec                      e Zd ZU dZded<   ded<   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	d	ed<   dZ
ded<   d Zed        Zy)LogEntryz
    Log entry.
    strsourceleveltextzruntime.Timestamp	timestampNztyping.Optional[str]urlztyping.Optional[int]line_numberz#typing.Optional[runtime.StackTrace]stack_tracez"typing.Optional[network.RequestId]network_request_id	worker_idz2typing.Optional[typing.List[runtime.RemoteObject]]argsc                l   t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  j                         |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  |d	<   | j                  +| j                  D cg c]  }|j                          c}|d
<   |S c c}w )Nr   r   r   r   r   
lineNumber
stackTracenetworkRequestIdworkerIdr   )dictr   r   r   r   to_jsonr   r   r   r   r   r   )selfjsonis      g/var/www/html/flask-app/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/log.pyr   zLogEntry.to_json3   s   vX

WyyV NN224[88((DK'!%!1!1D'!%!1!1!9!9!;D"".'+'>'>'F'F'HD#$>>%#~~D99 15;AAIIK;DL <s   D1c                .    | t        |d         t        |d         t        |d         t        j                  j                  |d         d|v rt        |d         nd d|v rt	        |d         nd d|v r"t        j
                  j                  |d         nd d|v r"t        j                  j                  |d         nd d	|v rt        |d	         nd d
|v r5|d
   D cg c]!  }t        j                  j                  |      # c}
      S d 
      S c c}w )Nr   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )	r   r	   	Timestamp	from_jsonint
StackTracer   	RequestIdRemoteObject)clsr   r    s      r!   r$   zLogEntry.from_jsonG   s   tH~&d7m$T&\"''11${2CD$)TMDK t3?43GD./TLX\`L`**44T,5GHfjXjnrXrw00::4@R;STx|/9T/Ac$z*+tNTX\nT&\J'&&003J
 	
 cg
 	
 Ks   &D)__name__
__module____qualname____doc____annotations__r   r   r   r   r   r   r   classmethodr$        r!   r   r      s     K J I !  !%C	$ )-K%, 8<K4; >B:A '+I#* @DD
<C( 
 
r1   r   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	ViolationSettingz*
    Violation configuration setting.
    r   namefloat	thresholdc                V    t               }| j                  |d<   | j                  |d<   |S )Nr4   r6   )r   r4   r6   )r   r   s     r!   r   zViolationSetting.to_jsonb   s)    vyyV NN[r1   c                F     | t        |d         t        |d               S )Nr4   r6   )r4   r6   )r   r5   r)   r   s     r!   r$   zViolationSetting.from_jsonh   s(    T&\"D-.
 	
r1   N)r*   r+   r,   r-   r.   r   r/   r$   r0   r1   r!   r3   r3   W   s/     I  
 
r1   r3   c               #     K   ddi} | }yw)z
    Clears the log.
    methodz	Log.clearNr0   cmd_dictr   s     r!   clearr>   p   s     
 	+H >D   
c               #     K   ddi} | }yw)z^
    Disables log domain, prevents further log entries from being reported to the client.
    r;   zLog.disableNr0   r<   s     r!   disablerA   z   s     
 	-H >Dr?   c               #     K   ddi} | }yw)z
    Enables log domain, sends the entries collected so far to the client by means of the
    ``entryAdded`` notification.
    r;   z
Log.enableNr0   r<   s     r!   enablerC      s      	,H >Dr?   c              #  ~   K   t               }| D cg c]  }|j                          c}|d<   d|d}|}yc c}w w)zV
    start violation reporting.

    :param config: Configuration for violations.
    configzLog.startViolationsReport)r;   paramsN)r   r   )rE   rF   r    r=   r   s        r!   start_violations_reportrG      sE      &F-34		4F8-H >D 5s   =8=c               #     K   ddi} | }yw)z#
    Stop violation reporting.
    r;   zLog.stopViolationsReportNr0   r<   s     r!   stop_violations_reportrI      s     
 	,H >Dr?   zLog.entryAddedc                  .    e Zd ZU dZded<   edd       Zy)
EntryAddedz-
    Issued when new message was logged.
    r   entryc                @     | t         j                  |d               S )NrL   )rL   )r   r$   r9   s     r!   r$   zEntryAdded.from_json   s!    $$T']3
 	
r1   N)r   r   returnrK   )r*   r+   r,   r-   r.   r/   r$   r0   r1   r!   rK   rK      s      O
 
r1   rK   )rN   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])rE   ztyping.List[ViolationSetting]rN   rO   )
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r   r3   r>   rA   rC   rG   rI   rK   r0   r1   r!   <module>rV      s    # * !     C
 C
 C
L 
 
 
0-	7" 

 
  
r1   