o
    ZhV                     @   sP   d dl mZmZmZ d dlmZ d dlmZ G dd deZG dd deZ	dS )	    )AnyIteratorLiteral)Document)
BaseLoaderc                   @   s6   e Zd ZdddedefddZdee fdd	Zd
S )BaseDataFrameLoadertextpage_content_column
data_framer
   c                C   s   || _ || _dS )zInitialize with dataframe object.

        Args:
            data_frame: DataFrame object.
            page_content_column: Name of the column containing the page content.
              Defaults to "text".
        N)r   r
   )selfr   r
    r   e/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/document_loaders/dataframe.py__init__	   s   
zBaseDataFrameLoader.__init__returnc                 c   s<    | j  D ]\}}| }|| j}t||dV  qdS )z!Lazy load records from dataframe.)Zpage_contentmetadataN)r   Ziterrowsto_dictpopr
   r   )r   _rowr   r   r   r   r   	lazy_load   s   zBaseDataFrameLoader.lazy_loadN)	__name__
__module____qualname__r   strr   r   r   r   r   r   r   r   r      s    r   c                       s8   e Zd ZdZ		d
dededed f fdd	Z  ZS )DataFrameLoaderzLoad `Pandas` DataFrame.r   pandasr   r
   engine)r   modinc              
      s   z|dkr
ddl }n|dkrddlm } ntd| dW n ty/ } ztd|d}~ww t||js?tdt| t j||d	 dS )
zInitialize with dataframe object.

        Args:
            data_frame: Pandas DataFrame object.
            page_content_column: Name of the column containing the page content.
              Defaults to "text".
        r   r   Nr   zUnsupported engine z&. Must be one of 'pandas', or 'modin'.zBUnable to import pandas, please install with `pip install pandas`.z.Expected data_frame to be a pd.DataFrame, got r	   )	r   Zmodin.pandas
ValueErrorImportError
isinstanceZ	DataFrametypesuperr   )r   r   r
   r   pde	__class__r   r   r       s,   

zDataFrameLoader.__init__)r   r   )	r   r   r   __doc__r   r   r   r   __classcell__r   r   r&   r   r      s    r   N)
typingr   r   r   Zlangchain_core.documentsr   Z)langchain_community.document_loaders.baser   r   r   r   r   r   r   <module>   s
    