o
    ҷhU                     @  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G dd de	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edeG dd dZdS )!    )annotations   )event_classT_JSON_DICT)	dataclassNc                      s8   e Zd ZdZdddZedddZ fd	d
Z  ZS )
DatabaseIdz/
    Unique identifier of Database object.
    returnstrc                 C  s   | S N selfr   r   c/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v117/database.pyto_json   s   zDatabaseId.to_jsonjsonc                 C  s   | |S r
   r   clsr   r   r   r   	from_json   s   zDatabaseId.from_jsonc                   s   d t  S )NzDatabaseId({}))formatsuper__repr__r   	__class__r   r   r      s   zDatabaseId.__repr__)r   r	   )r   r	   r   r   )	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__r   r   r   r   r      s    
r   c                   @  sF   e Zd ZU dZded< ded< ded< ded< dd	 Zed
d ZdS )Databasez
    Database object.
    r   id_r	   domainnameversionc                 C  s6   t  }| j |d< | j|d< | j|d< | j|d< |S )Nidr!   r"   r#   )dictr    r   r!   r"   r#   r   r   r   r   r   r   -   s   


zDatabase.to_jsonc                 C  s2   | t |d t|d t|d t|d dS )Nr$   r!   r"   r#   )r    r!   r"   r#   )r   r   r	   r   r   r   r   r   5   s   


zDatabase.from_jsonNr   r   r   r   __annotations__r   r   r   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 )Errorz
    Database error.
    r	   messageintcodec                 C  s   t  }| j|d< | j|d< |S )Nr*   r,   )r%   r*   r,   r&   r   r   r   r   J   s   

zError.to_jsonc                 C  s   | t |d t|d dS )Nr*   r,   )r*   r,   )r	   r+   r   r   r   r   r   P   s   

zError.from_jsonNr'   r   r   r   r   r)   ?   s   
 r)   r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                  c      ddi} | V }dS )z]
    Disables database tracking, prevents database events from being sent to the client.
    methodzDatabase.disableNr   cmd_dictr   r   r   r   disableX      
r2   c                  c  r.   )zY
    Enables database tracking, database events will now be delivered to the client.
    r/   zDatabase.enableNr   r0   r   r   r   enableb   r3   r4   database_idqueryr	   typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.Optional[typing.List[str]], typing.Optional[typing.List[typing.Any]], typing.Optional[Error]]]c                 c  s    t  }|  |d< ||d< d|d}|V }d|v r#dd |d D ndd	|v r1d
d |d	 D ndd|v r>t|d fS dfS )z
    :param database_id:
    :param query:
    :returns: A tuple with the following items:

        0. **columnNames** - 
        1. **values** - 
        2. **sqlError** - 
    
databaseIdr6   zDatabase.executeSQLr/   paramscolumnNamesc                 S     g | ]}t |qS r   r	   .0ir   r   r   
<listcomp>       zexecute_sql.<locals>.<listcomp>Nvaluesc                 S  s   g | ]}|qS r   r   r>   r   r   r   rA      s    sqlError)r%   r   r)   r   )r5   r6   r:   r1   r   r   r   r   execute_sqll   s   rE   <typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]]c                 c  s6    t  }|  |d< d|d}|V }dd |d D S )z,
    :param database_id:
    :returns: 
    r8   zDatabase.getDatabaseTableNamesr9   c                 S  r<   r   r=   r>   r   r   r   rA      rB   z,get_database_table_names.<locals>.<listcomp>
tableNames)r%   r   )r5   r:   r1   r   r   r   r   get_database_table_names   s   rH   zDatabase.addDatabasec                   @  s$   e Zd ZU ded< ed	ddZdS )
AddDatabaser   databaser   r   r   c                 C  s   | t |d dS )NrJ   )rJ   )r   r   r   r   r   r   r      s   zAddDatabase.from_jsonN)r   r   r   rI   )r   r   r   r(   r   r   r   r   r   r   rI      s   
 rI   )r   r-   )r5   r   r6   r	   r   r7   )r5   r   r   rF   )
__future__r   utilr   r   dataclassesr   enumtypingr	   r   r   r)   r2   r4   rE   rH   rI   r   r   r   r   <module>   s"   "





