
    ih{                     F    d dl mZmZmZ d dlmZ d dlmZ  G d de      Zy)    )IteratorOptionalSequence)Document)
BaseLoaderc                   J    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
y)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                 <    || _         || _        || _        || _        y N)r
   r   r   r   )selfr
   r   r   r   s        h/var/www/html/dev/engine/venv/lib/python3.12/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}  || j                        }|j                   || j                              }|j                  }|D ]r  }|t        |j                               }	d}
|	j                         D ]  \  }}|| j                  k(  s|}
 t        |
|j                  |j                   d	      }| t |j"                  t        d
d|j"                  i	       y y # t        $ r t        d      w xY ww)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 t{{+!'c$**o!>]] 	F! $V\\^ 4!"/"5"5"7 -JCd555',- &.!-$*IIVYY?& 	 ::!/!4::.  "-  	> 	s*   DC8 AD A D!AD8DDr   )__name__
__module____qualname____doc__strr   r   r   r   r   r/    r   r   r	   r	      sQ     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r   