o
    M,hf                     @   sJ   d dl mZmZ d dlmZ G dd dZG dd dZG dd dZd	S )
    )OptionalUnion)command_builderc                   @   s   e Zd ZdZdZdZdZdS )PermissionStatez*Represents the possible permission states.granteddeniedpromptN)__name__
__module____qualname____doc__GRANTEDDENIEDPROMPT r   r   v/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/selenium/webdriver/common/bidi/permissions.pyr      s
    r   c                   @   s,   e Zd ZdZdefddZdefddZdS )	PermissionDescriptorz#Represents a permission descriptor.namec                 C   
   || _ d S Nr   )selfr   r   r   r   __init__"      
zPermissionDescriptor.__init__returnc                 C   s
   d| j iS )Nr   r   )r   r   r   r   to_dict%   r   zPermissionDescriptor.to_dictN)r	   r
   r   r   strr   dictr   r   r   r   r   r      s    r   c                   @   sF   e Zd ZdZdd Z	ddeeef dededee d	df
d
dZ	dS )Permissionsz8
    BiDi implementation of the permissions module.
    c                 C   r   r   )conn)r   r   r   r   r   r   .   r   zPermissions.__init__N
descriptorstateoriginuser_contextr   c                 C   s   |t jt jt jfvrt j dt j dt j }td| t|tr(t|}n|}| ||d}|dur:||d< | j	
td| dS )a  Sets a permission state for a given permission descriptor.

        Parameters:
        -----------
            descriptor: The permission name (str) or PermissionDescriptor object.
                       Examples: "geolocation", "camera", "microphone"
            state: The permission state (granted, denied, prompt).
            origin: The origin for which the permission is set.
            user_context: The user context id (optional).

        Raises:
        ------
            ValueError: If the permission state is invalid.
        z, z*Invalid permission state. Must be one of: )r    r!   r"   NuserContextzpermissions.setPermission)r   r   r   r   
ValueError
isinstancer   r   r   r   executer   )r   r    r!   r"   r#   valid_statespermission_descriptorparamsr   r   r   set_permission1   s   

zPermissions.set_permissionr   )
r	   r
   r   r   r   r   r   r   r   r+   r   r   r   r   r   )   s    
r   N)typingr   r   %selenium.webdriver.common.bidi.commonr   r   r   r   r   r   r   r   <module>   s
   
