
    Ng{                     N    d dl mZmZmZ d dlmZ d dlmZ  G d de          ZdS )    )IteratorOptionalSequence)Document)
BaseLoaderc                   ^    e Zd ZdZ	 d
dedededeee                  fdZdee	         f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                 >    || _         || _        || _        || _        d S N)r
   r   r   r   )selfr
   r   r   r   s        f/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/document_loaders/fauna.py__init__zFaunaLoader.__init__   s(     
"4.    returnc              #     K   	 ddl m}m} ddlm} ddlm} n# t          $ r t          d          w xY w || j                  }|	                     || j	                            }|j
        }|D ]p}|lt          |                                          }	d}
|	                                D ]\  }}|| j        k    r|}
t          |
|j        |j        d	          }|V  q|j        t          d
d|j        i	          V  d S 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)faunar   r   fauna.clientr   fauna.encodingr   ImportErrorr   r
   datadictitemsr   r   r   r   r   )r   r   r   r   r   clientresponsepageresultdocument_dictr   keyvaluedocuments                 r   	lazy_loadzFaunaLoader.lazy_load   s     	''''''''++++++3333333 	 	 	>  	 t{+++!'cc$*oo!>!>] 	 	F! $V\\^^ 4 4!"/"5"5"7"7 - -JCd555',%-!-$*IVY??& & & :!/!4:.        "!s    3r   )__name__
__module____qualname____doc__strr   r   r   r   r   r/    r   r   r	   r	      s          48
/ 
/
/  
/ 	
/
 "(3-0
/ 
/ 
/ 
/8H-      r   r	   N)	typingr   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser   r	   r5   r   r   <module>r9      s{    / / / / / / / / / / - - - - - - @ @ @ @ @ @6 6 6 6 6* 6 6 6 6 6r   