
    dh                        S SK Jr  S SKJrJrJrJrJr  S SKJ	r	  S SK
Jr  S SKJr  \(       a  S SKJr  S SKJr  O S SKJr  S SKJr  SS jr " S S	\	5      rg
! \ a     Nf = f)    )annotations)TYPE_CHECKINGAnyOptionalTupleType)BaseTool)guard_import)model_validator)Browserc                 N    [        SS9R                  [        SS9R                  4$ )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        a/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/tools/playwright/base.pylazy_import_playwright_browsersr      s,     	!78@@!67?? r   c                      \ rS rSr% SrSrS\S'   SrS\S'   \" SS	9\	SS
 j5       5       r
\	  S     SS jj5       rSrg)BaseBrowserTool#   zBase class for browser tools.NzOptional['SyncBrowser']sync_browserzOptional['AsyncBrowser']async_browserbefore)modec                x    [        5         UR                  S5      c  UR                  S5      c  [        S5      eU$ )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_provided)BaseBrowserTool.validate_browser_provided)   s8     	()::o&.6::n3M3UVWWr   c                "    [        5         U " XS9$ )zInstantiate the tool.)r   r   )r   )r   r   r   s      r   from_browserBaseBrowserTool.from_browser2   s     	()JJr   r   )r   dictreturnr   )NN)r   zOptional[SyncBrowser]r   zOptional[AsyncBrowser]r%   r   )__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   classmethodr   r"   __static_attributes__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>r8      sR    " < < ) - $<:@>
Kh K%  s   A A"!A"