a
    bg{                     @   s@   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dS )    )IteratorOptionalSequence)Document)
BaseLoaderc                   @   s@   e Zd ZdZd	eeeeee  dddZee	 dddZ
dS )
FaunaLoaderal  Load from `FaunaDB`.

    Attributes:
        query (str): The FQL query string to execute.
        page_content_field (str): The field that contains the content of each page.
        secret (str): The secret key for authenticating to FaunaDB.
        metadata_fields (Optional[Sequence[str]]):
            Optional list of field names to include in metadata.
    Nquerypage_content_fieldsecretmetadata_fieldsc                 C   s   || _ || _|| _|| _d S )Nr   )selfr	   r
   r   r    r   x/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/document_loaders/fauna.py__init__   s    zFaunaLoader.__init__)returnc                 c   s   z,ddl m}m} ddlm} ddlm} W n tyF   tdY n0 || jd}|	|| j	}|j
}|D ]X}|d urnt| }	d}
|	 D ]\}}|| jkr|}
qt|
|j|jdd	}|V  qn|jd urtd
d|jid	V  d S )Nr   )Pagefql)Client)QuerySuccesszRCould not import fauna python package. Please install it with `pip install fauna`.)r    )idts)page_contentmetadatazNext Page Existsafter)Zfaunar   r   Zfauna.clientr   Zfauna.encodingr   ImportErrorr   r	   datadictitemsr
   r   r   r   r   )r   r   r   r   r   clientresponsepageresultZdocument_dictr   keyvalueZdocumentr   r   r   	lazy_load   s8    


zFaunaLoader.lazy_load)N)__name__
__module____qualname____doc__strr   r   r   r   r   r&   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   <module>   s   