
    7|h                        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 ddZ G d d	e	      Zy
# e$ r Y w xY w)    )annotations)TYPE_CHECKINGAnyOptionalTupleType)BaseTool)guard_import)model_validator)Browserc                 Z    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        h/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/tools/playwright/base.pylazy_import_playwright_browsersr      s,     	!78@@!67?? r   c                  z    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
y)BaseBrowserToolzBase class for browser tools.NzOptional['SyncBrowser']sync_browserzOptional['AsyncBrowser']async_browserbefore)modec                t    t                |j                  d      |j                  d      t        d      |S )z#Check that the arguments are valid.r   r   z7Either async_browser or sync_browser must be specified.)r   get
ValueError)clsvaluess     r   validate_browser_providedz)BaseBrowserTool.validate_browser_provided)   s8     	()::o&.6::n3M3UVWWr   c                *    t                 | ||      S )zInstantiate the tool.)r   r   )r   )r   r   r   s      r   from_browserzBaseBrowserTool.from_browser2   s     	()MJJr   )r   dictreturnr   )NN)r   zOptional[SyncBrowser]r   zOptional[AsyncBrowser]r"   r   )__name__
__module____qualname____doc__r   __annotations__r   r   classmethodr   r    r   r   r   r   r   #   sw    ',0L)0.2M+2(#  $  /304K+K .K 
	K Kr   r   N)r"   z,Tuple[Type[AsyncBrowser], Type[SyncBrowser]])
__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>r3      sR    " < < ) - $<:@>
Kh K%  s   A AA