o
    4@HhM                     @   s.   d dl mZmZ d dlmZ G dd dZdS )    )DictUnion)command_builderc                   @   sB   e Zd ZdZdd ZddefddZdeeef ddfd	d
Z	dS )WebExtensionz9
    BiDi implementation of the webExtension module.
    c                 C   s
   || _ d S N)conn)selfr    r	   k/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/selenium/webdriver/common/bidi/webextension.py__init__   s   
zWebExtension.__init__Nreturnc                 C   s|   t dd |||fD dkrtd|durd|d}n|dur&d|d}n	|dur/d	|d
}d|i}| jtd|}|S )a  Installs a web extension in the remote end.

        You must provide exactly one of the parameters.

        Parameters:
        -----------
            path: Path to an extension directory
            archive_path: Path to an extension archive file
            base64_value: Base64 encoded string of the extension archive

        Returns:
        -------
            Dict: A dictionary containing the extension ID.
        c                 s   s    | ]}|d uV  qd S r   r	   ).0xr	   r	   r
   	<genexpr>.   s    z'WebExtension.install.<locals>.<genexpr>   zCExactly one of path, archive_path, or base64_value must be providedNpath)typer   archivePathbase64)r   valueextensionDatazwebExtension.install)sum
ValueErrorr   executer   )r   r   archive_pathbase64_valueextension_dataparamsresultr	   r	   r
   install   s   
zWebExtension.installextension_id_or_resultc                 C   s8   t |tr|d}n|}d|i}| jtd| dS )a!  Uninstalls a web extension from the remote end.

        Parameters:
        -----------
            extension_id_or_result: Either the extension ID as a string or the result dictionary
                                   from a previous install() call containing the extension ID.
        	extensionzwebExtension.uninstallN)
isinstancedictgetr   r   r   )r   r    extension_idr   r	   r	   r
   	uninstall<   s
   
zWebExtension.uninstall)NNN)
__name__
__module____qualname____doc__r   r   r   r   strr&   r	   r	   r	   r
   r      s
    r   N)typingr   r   %selenium.webdriver.common.bidi.commonr   r   r	   r	   r	   r
   <module>   s   