
    h	                        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e
      Z G d	 d
e      Zy)    )annotations)AnyOptionalType)AsyncCallbackManagerForToolRunCallbackManagerForToolRun)	BaseModelmodel_validator)BaseBrowserTool)aget_current_pageget_current_pagec                      e Zd ZdZy)ExtractTextToolInputz+Explicit no-args input for ExtractTextTool.N)__name__
__module____qualname____doc__     o/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/tools/playwright/extract_text.pyr   r      s    5r   r   c                      e Zd ZU dZdZded<   dZded<   eZded<    e	d	
      e
dd              ZdddZ	 d	 	 	 ddZy)ExtractTextToolz8Tool for extracting all the text on the current webpage.extract_textstrnamez+Extract all the text on the current webpagedescriptionzType[BaseModel]args_schemabefore)modec                D    	 ddl m} |S # t        $ r t        d      w xY 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)clsvaluesr"   s      r   check_acheck_bs_importrgsz)ExtractTextTool.check_acheck_bs_importrgs   s5    	)   	H 	s   
 Nc                    ddl m} | j                  t        d| j                         t        | j                        }|j                         } ||d      }dj                  d |j                  D              S )Use the tool.r   r!   z$Synchronous browser not provided to lxml c              3      K   | ]  }|  y wNr   .0texts     r   	<genexpr>z'ExtractTextTool._run.<locals>.<genexpr>8        ??   )	r#   r"   sync_browser
ValueErrorr   r   contentjoinstripped_stringsselfrun_managerr"   pagehtml_contentsoups         r   _runzExtractTextTool._run*   sn     	&$CDII;OPP 1 12||~ \62xx?)>)>???r   c                &  K   | j                   t        d| j                         ddlm} t        | j                          d{   }|j                          d{   } ||d      }dj                  d |j                  D              S 7 G7 1w)r)   Nz%Asynchronous browser not provided to r   r!   r*   r+   c              3      K   | ]  }|  y wr-   r   r.   s     r   r1   z(ExtractTextTool._arun.<locals>.<genexpr>I   r2   r3   )	async_browserr5   r   r#   r"   r   r6   r7   r8   r9   s         r   _arunzExtractTextTool._arun:   s      %DTYYKPQQ%&t'9'9::!\\^+ \62xx?)>)>??? ;+s$   ABBBB0BB)r&   dictreturnr   r-   )r;   z#Optional[CallbackManagerForToolRun]rE   r   )r;   z(Optional[AsyncCallbackManagerForToolRun]rE   r   )r   r   r   r   r   __annotations__r   r   r   r
   classmethodr'   r?   rC   r   r   r   r   r      sg    BD#DKD#7K7(#	  $	@" GK@C@	@r   r   N)
__future__r   typingr   r   r   langchain_core.callbacksr   r   pydanticr	   r
   )langchain_community.tools.playwright.baser   *langchain_community.tools.playwright.utilsr   r   r   r   r   r   r   <module>rN      s:    " & & 0 E69 63@o 3@r   