o
    Zh                     @   s<   d dl mZmZ d dlmZ d dlmZ G dd deZdS )    )AnyIterator)Document)BaseDataFrameLoaderc                       sB   e Zd ZdZdddedef fddZdee fd	d
Z	  Z
S )PolarsDataFrameLoaderzLoad `Polars` DataFrame.textpage_content_column
data_framer	   c                   s:   ddl }t||jstdt| t j||d dS )zInitialize with dataframe object.

        Args:
            data_frame: Polars DataFrame object.
            page_content_column: Name of the column containing the page content.
              Defaults to "text".
        r   Nz.Expected data_frame to be a pl.DataFrame, got r   )Zpolars
isinstanceZ	DataFrame
ValueErrortypesuper__init__)selfr
   r	   pl	__class__ l/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/document_loaders/polars_dataframe.pyr      s   zPolarsDataFrameLoader.__init__returnc                 c   s>    | j jddD ]}|| j }|| j t||dV  qdS )z!Lazy load records from dataframe.T)named)Zpage_contentmetadataN)r
   Z	iter_rowsr	   popr   )r   rowr   r   r   r   	lazy_load   s   
zPolarsDataFrameLoader.lazy_load)__name__
__module____qualname____doc__r   strr   r   r   r   __classcell__r   r   r   r   r      s    r   N)typingr   r   Zlangchain_core.documentsr   Z.langchain_community.document_loaders.dataframer   r   r   r   r   r   <module>   s    