
    >fhf                     \    d dl mZmZ d dlmZ  G d d      Z G d d      Z G d d      Zy	)
    )OptionalUnion)command_builderc                       e Zd ZdZdZdZdZy)PermissionStatez*Represents the possible permission states.granteddeniedpromptN)__name__
__module____qualname____doc__GRANTEDDENIEDPROMPT     ]/var/www/zara/venv/lib/python3.12/site-packages/selenium/webdriver/common/bidi/permissions.pyr   r      s    4GFFr   r   c                   (    e Zd ZdZdefdZdefdZy)PermissionDescriptorz#Represents a permission descriptor.namec                     || _         y Nr   )selfr   s     r   __init__zPermissionDescriptor.__init__"   	    	r   returnc                     d| j                   iS )Nr   r   )r   s    r   to_dictzPermissionDescriptor.to_dict%   s    		""r   N)r   r   r   r   strr   dictr    r   r   r   r   r      s    -S # #r   r   c                   F    e Zd ZdZd Z	 d
deeef   dededee   ddf
d	Z	y)Permissionsz8
    BiDi implementation of the permissions module.
    c                     || _         y r   )conn)r   r&   s     r   r   zPermissions.__init__.   r   r   N
descriptorstateoriginuser_contextr   c                    |t         j                  t         j                  t         j                  fvrBt         j                   dt         j                   dt         j                   }t	        d|       t        |t              rt        |      }n|}|j                         ||d}|||d<   | j                  j                  t        d|             y)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paramss           r   set_permissionzPermissions.set_permission1   s    * 00/2H2H/J`J`aa-556b9O9O8PPRSbSiSiRjkLI,XYYj#&$8$D!$.! 0779
 #$0F=!		/*EvNOr   r   )
r   r   r   r   r   r   r!   r   r   r3   r   r   r   r$   r$   )   s[     '+'P#334'P 'P 	'P
 sm'P 
'Pr   r$   N)typingr   r   %selenium.webdriver.common.bidi.commonr   r   r   r$   r   r   r   <module>r6      s-   $ # A # #/P /Pr   