
    'j                        d dl Z d dlmZ d dlmZmZmZmZmZ d dl	m
Z
mZmZmZ d dlmZ d dlmZ ddlmZmZ  G d	 d
e          Zeddddedeeeef                  ded         de
fd            Zedddedeeeef                  ded         defd            Zddddddedeeeed         f                  deeeef                  dedee         dee
ef         fdZdS )    N)partial)AnyDictOptionalUnionoverload)BrowserBrowserContext
PlaywrightPlaywrightContextManager)Literal)VirtualDisplay   )async_attach_vdlaunch_optionsc                   R     e Zd ZdZ fdZdeeef         f fdZde	f fdZ
 xZS )AsyncCamoufoxz
    Wrapper around playwright.async_api.PlaywrightContextManager that automatically
    launches a browser and closes it when the context manager is exited.
    c                 d    t                                                       || _        d | _        d S N)super__init__r   browser)selfr   	__class__s     V/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/camoufox/async_api.pyr   zAsyncCamoufox.__init__   s,    ,AE    returnc                    K   t                                                       d {V }t          |fi | j         d {V | _        | j        S r   )r   
__aenter__AsyncNewBrowserr   r   )r   _playwrightr   s     r   r   zAsyncCamoufox.__aenter__   sb      !GG..00000000,[PPD<OPPPPPPPP|r   argsc                    K   | j         r| j                                          d {V   t                      j        |  d {V  d S r   )r   closer   	__aexit__)r   r"   r   s     r   r%   zAsyncCamoufox.__aexit__"   sc      < 	',$$&&&&&&&&&egg&&&&&&&&&&r   )__name__
__module____qualname____doc__r   r   r	   r
   r   r   r%   __classcell__)r   s   @r   r   r      s         
F F F F F
%(?"@      
'S ' ' ' ' ' ' ' ' ' 'r   r   F)from_optionspersistent_context
playwrightr+   r,   r   c                
   K   d S r    r-   r+   r,   kwargss       r   r    r    (   s       cr   )r+   Tc                
   K   d S r   r/   r0   s       r   r    r    2   s       Sr   )headlessr+   r,   debugr3   virtualr4   c          	        K   |dk    r*t          |          }|                                |d<   d}nd}|s@t          j                                        dt          t          f||d|           d{V }|r. | j        j        di | d{V }t          ||           d{V S  | j        j
        di | d{V }t          ||           d{V S )a  
    Launches a new browser instance for Camoufox given a set of launch options.

    Parameters:
        from_options (Dict[str, Any]):
            A set of launch options generated by `launch_options()` to use
        persistent_context (bool):
            Whether to use a persistent context.
        **kwargs:
            All other keyword arugments passed to `launch_options()`.
    r5   )r4   virtual_displayFN)r3   r4   r/   )r   getasyncioget_event_looprun_in_executorr   r   firefoxlaunch_persistent_contextr   launch)	r-   r3   r+   r,   r4   r1   r7   contextr   s	            r   r    r    <   sQ     ( 9(u555$3$7$7$9$9 ! 
$355EENMXUMMfMM
 
 
 
 
 
 
 
  ?D
*DTT|TTTTTTTT$Wo>>>>>>>>> .J&-==========G /:::::::::r   )r9   	functoolsr   typingr   r   r   r   r   playwright.async_apir	   r
   r   r   typing_extensionsr   camoufox.virtdisplayr   utilsr   r   r   strr    boolr/   r   r   <module>rH      s]          7 7 7 7 7 7 7 7 7 7 7 7 7 7            & % % % % % / / / / / / 2 2 2 2 2 2 2 2' ' ' ' ', ' ' ', 
 .2).	   4S>*  	    
 
 .2   4S>*  	    
 ;?-1$ (; (; (;(; uT79#5567(; 4S>*	(;
 (; D>(; 7N"#(; (; (; (; (; (;r   