
    Ng                        d dl mZ d dlmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ erd dlmZ d dlmZ n	 d dlmZ d dlmZ n# e$ r Y nw xY wdd	Z G d
 de	          ZdS )    )annotations)TYPE_CHECKINGAnyOptionalTupleType)BaseTool)guard_import)model_validator)Browserreturn,Tuple[Type[AsyncBrowser], Type[SyncBrowser]]c                 V    t          d          j        t          d          j        fS )z
    Lazy import playwright browsers.

    Returns:
        Tuple[Type[AsyncBrowser], Type[SyncBrowser]]:
            AsyncBrowser and SyncBrowser classes.
    zplaywright.async_api)module_namezplaywright.sync_api)r
   r        e/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/playwright/base.pylazy_import_playwright_browsersr      s2     	!7888@!6777? r   c                      e Zd ZU dZdZded<   dZded<    ed          edd                        Z	e	 	 ddd            Z
dS )BaseBrowserToolzBase class for browser tools.NzOptional['SyncBrowser']sync_browserzOptional['AsyncBrowser']async_browserbefore)modevaluesdictr   r   c                    t                       |                    d          $|                    d          t          d          |S )z#Check that the arguments are valid.r   Nr   z7Either async_browser or sync_browser must be specified.)r   get
ValueError)clsr   s     r   validate_browser_providedz)BaseBrowserTool.validate_browser_provided)   sG     	()))::o&&.6::n3M3M3UVWWWr   Optional[SyncBrowser]Optional[AsyncBrowser]c                8    t                        | ||          S )zInstantiate the tool.)r   r   )r   )r    r   r   s      r   from_browserzBaseBrowserTool.from_browser2   s%     	()))sMJJJJr   )r   r   r   r   )NN)r   r"   r   r#   r   r   )__name__
__module____qualname____doc__r   __annotations__r   r   classmethodr!   r%   r   r   r   r   r   #   s         '',0L0000.2M2222_(###   [ $#  /304K K K K [K K Kr   r   N)r   r   )
__future__r   typingr   r   r   r   r   langchain_core.toolsr	   langchain_core.utilsr
   pydanticr   playwright.async_apir   AsyncBrowserplaywright.sync_apiSyncBrowserImportErrorr   r   r   r   r   <module>r6      sD   " " " " " " < < < < < < < < < < < < < < ) ) ) ) ) ) - - - - - - $ $ $ $ $ $ 	<<<<<<:::::::@@@@@@>>>>>>>      K K K K Kh K K K K Ks   A AA