o
    ҷh                     @  s   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	 d	ZeG d
d dZdddZdddZdddZdddZdddZedeG dd dZdS )    )annotations   )event_classT_JSON_DICT)	dataclassN)network)runtimec                   @  s   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ded< dd Zedd ZdS )LogEntryz
    Log entry.
    strsourceleveltextzruntime.Timestamp	timestampNztyping.Optional[str]category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                 C  s   t  }| j|d< | j|d< | j|d< | j |d< | jd ur#| j|d< | jd ur-| j|d< | jd ur7| j|d< | j	d urC| j	 |d< | j
d urO| j
 |d	< | jd urY| j|d
< | jd urhdd | jD |d< |S )Nr   r   r   r   r   r   
lineNumber
stackTracenetworkRequestIdworkerIdc                 S     g | ]}|  qS  to_json.0ir   r   ^/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v118/log.py
<listcomp>H       z$LogEntry.to_json.<locals>.<listcomp>r   )dictr   r   r   r   r   r   r   r   r   r   r   r   selfjsonr   r   r!   r   5   s(   













zLogEntry.to_jsonc                 C  s   | t |d t |d t |d tj|d d|v r!t |d nd d|v r,t |d nd d|v r7t|d nd d|v rDtj|d nd d	|v rQtj|d	 nd d
|v r\t |d
 nd d|v rldd |d D dS d dS )Nr   r   r   r   r   r   r   r   r   r   r   c                 S  s   g | ]}t j|qS r   )r   RemoteObject	from_jsonr   r   r   r!   r"   X   s    z&LogEntry.from_json.<locals>.<listcomp>)r   r   r   r   r   r   r   r   r   r   r   )r
   r   	Timestampr)   int
StackTracer   	RequestIdclsr'   r   r   r!   r)   K   s   


zLogEntry.from_json)__name__
__module____qualname____doc____annotations__r   r   r   r   r   r   r   r   classmethodr)   r   r   r   r!   r	      s    
 r	   c                   @  s6   e Zd ZU dZded< ded< dd Zedd	 Zd
S )ViolationSettingz*
    Violation configuration setting.
    r
   namefloat	thresholdc                 C  s   t  }| j|d< | j|d< |S )Nr7   r9   )r$   r7   r9   r%   r   r   r!   r   g   s   

zViolationSetting.to_jsonc                 C  s   | t |d t|d dS )Nr7   r9   )r7   r9   )r
   r8   r.   r   r   r!   r)   m   s   

zViolationSetting.from_jsonN)r0   r1   r2   r3   r4   r   r5   r)   r   r   r   r!   r6   \   s   
 r6   return0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                  c      ddi} | V }dS )z
    Clears the log.
    methodz	Log.clearNr   cmd_dictr'   r   r   r!   clearu      
r@   c                  c  r<   )z^
    Disables log domain, prevents further log entries from being reported to the client.
    r=   zLog.disableNr   r>   r   r   r!   disable   rA   rB   c                  c  r<   )z
    Enables log domain, sends the entries collected so far to the client by means of the
    ``entryAdded`` notification.
    r=   z
Log.enableNr   r>   r   r   r!   enable   s   
rC   configtyping.List[ViolationSetting]c                 c  s.    t  }dd | D |d< d|d}|V }dS )zV
    start violation reporting.

    :param config: Configuration for violations.
    c                 S  r   r   r   r   r   r   r!   r"      r#   z+start_violations_report.<locals>.<listcomp>rD   zLog.startViolationsReport)r=   paramsN)r$   )rD   rF   r?   r'   r   r   r!   start_violations_report   s   
rG   c                  c  r<   )z#
    Stop violation reporting.
    r=   zLog.stopViolationsReportNr   r>   r   r   r!   stop_violations_report   rA   rH   zLog.entryAddedc                   @  s(   e Zd ZU dZded< ed
ddZd	S )
EntryAddedz-
    Issued when new message was logged.
    r	   entryr'   r   r:   c                 C  s   | t |d dS )NrJ   )rJ   )r	   r)   r.   r   r   r!   r)      s   zEntryAdded.from_jsonN)r'   r   r:   rI   )r0   r1   r2   r3   r4   r5   r)   r   r   r   r!   rI      s
   
 rI   )r:   r;   )rD   rE   r:   r;   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   r	   r6   r@   rB   rC   rG   rH   rI   r   r   r   r!   <module>   s&   K







