
    'j
                        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 )    )AnyDictOptionalUnionoverload)BrowserBrowserContext
PlaywrightPlaywrightContextManager)Literal)VirtualDisplay   )launch_optionssync_attach_vdc                   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 )Camoufoxz
    Wrapper around playwright.sync_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     U/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/camoufox/sync_api.pyr   zCamoufox.__init__   s,    ,AE    returnc                     t                                                       t          | j        fi | j        | _        | j        S r   )r   	__enter__
NewBrowser_playwrightr   r   )r   r   s    r   r   zCamoufox.__enter__   s>    !$"2JJd6IJJ|r   argsc                 t    | j         r| j                                           t                      j        |  d S r   )r   closer   __exit__)r   r!   r   s     r   r$   zCamoufox.__exit__    s;    < 	!L   $r   )__name__
__module____qualname____doc__r   r   r   r	   r   r   r$   __classcell__)r   s   @r   r   r      s         
F F F F F
5.!89      
 c                    r   r   NF)from_optionspersistent_context
playwrightr*   r+   r   c                    d S r    r,   r*   r+   kwargss       r   r   r   &   s	     cr   )r*   Tc                    d S r   r.   r/   s       r   r   r   0   s	     Sr   )headlessr*   r+   debugr2   virtualr3   c                   |dk    r*t          |          }|                                |d<   d}nd}|st          d||d|}|r" | j        j        di |}t          ||          S  | j        j        di |}t          ||          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()`.
    r4   )r3   virtual_displayFN)r2   r3   r.   )r   getr   firefoxlaunch_persistent_contextr   launch)	r,   r2   r*   r+   r3   r0   r6   contextr   s	            r   r   r   :   s    ( 9(u555$3$7$7$9$9 ! P%OxuOOOO  8>*$>NNNNg777 (j '77,77G'?333r   )typingr   r   r   r   r   playwright.sync_apir   r	   r
   r   typing_extensionsr   camoufox.virtdisplayr   utilsr   r   r   strr   boolr.   r   r   <module>rC      sB   7 7 7 7 7 7 7 7 7 7 7 7 7 7            & % % % % % / / / / / / 1 1 1 1 1 1 1 1         '      , 
 .2).	   4S>*  	    
 
 .2   4S>*  	    
 ;?-1$ %4 %4 %4%4 uT79#5567%4 4S>*	%4
 %4 D>%4 7N"#%4 %4 %4 %4 %4 %4r   