o
    Zh	                     @  s   d dl mZ d dlmZmZmZ d dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZmZ G dd de
ZG d	d
 d
eZdS )    )annotations)AnyOptionalType)AsyncCallbackManagerForToolRunCallbackManagerForToolRun)	BaseModelmodel_validator)BaseBrowserTool)aget_current_pageget_current_pagec                   @  s   e Zd ZdZdS )ExtractTextToolInputz+Explicit no-args input for ExtractTextTool.N)__name__
__module____qualname____doc__ r   r   h/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/tools/playwright/extract_text.pyr      s    r   c                   @  sh   e Zd ZU dZdZded< dZded< eZded< e	d	d
e
dddZddddZ	ddddZdS )ExtractTextToolz8Tool for extracting all the text on the current webpage.Zextract_textstrnamez+Extract all the text on the current webpagedescriptionzType[BaseModel]args_schemabefore)modevaluesdictreturnr   c                 C  s*   z	ddl m} W |S  ty   tdw )z#Check that the arguments are valid.r   BeautifulSoupzoThe 'beautifulsoup4' package is required to use this tool. Please install it with 'pip install beautifulsoup4'.)bs4r   ImportError)clsr   r   r   r   r   check_acheck_bs_importrgs   s   z)ExtractTextTool.check_acheck_bs_importrgsNrun_manager#Optional[CallbackManagerForToolRun]c                 C  sX   ddl m} | jdu rtd| j t| j}| }||d}ddd |jD S )	Use the tool.r   r   Nz$Synchronous browser not provided to lxml c                 s      | ]}|V  qd S Nr   .0textr   r   r   	<genexpr>8       z'ExtractTextTool._run.<locals>.<genexpr>)	r    r   Zsync_browser
ValueErrorr   r   contentjoinstripped_stringsselfr$   r   pageZhtml_contentZsoupr   r   r   _run*   s   


zExtractTextTool._run(Optional[AsyncCallbackManagerForToolRun]c                   sf   | j du rtd| j ddlm} t| j I dH }| I dH }||d}ddd |jD S )	r&   Nz%Asynchronous browser not provided to r   r   r'   r(   c                 s  r)   r*   r   r+   r   r   r   r.   I   r/   z(ExtractTextTool._arun.<locals>.<genexpr>)	Zasync_browserr0   r   r    r   r   r1   r2   r3   r4   r   r   r   _arun:   s   

zExtractTextTool._arun)r   r   r   r   r*   )r$   r%   r   r   )r$   r8   r   r   )r   r   r   r   r   __annotations__r   r   r   r	   classmethodr#   r7   r9   r   r   r   r   r      s   
 r   N)
__future__r   typingr   r   r   Zlangchain_core.callbacksr   r   Zpydanticr   r	   Z)langchain_community.tools.playwright.baser
   Z*langchain_community.tools.playwright.utilsr   r   r   r   r   r   r   r   <module>   s    