a
    bg	                     @  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   /var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/tools/playwright/extract_text.pyr      s   r   c                   @  sx   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ddZddddddZdd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dictr   )valuesreturnc                 C  s0   zddl m} W n ty*   tdY n0 |S )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_importrgsNz#Optional[CallbackManagerForToolRun])run_managerr   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  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._runz(Optional[AsyncCallbackManagerForToolRun]c                   sd   | 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  s   | ]
}|V  qd S r(   r   r)   r   r   r   r,   I   r-   z(ExtractTextTool._arun.<locals>.<genexpr>)	Zasync_browserr.   r   r    r   r   r/   r0   r1   r2   r   r   r   _arun:   s    

zExtractTextTool._arun)N)N)r   r   r   r   r   __annotations__r   r   r   r	   classmethodr#   r5   r6   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   