
    dhO                    ^    S SK Jr  S SKJrJrJrJrJrJr  S SK	J
r
  S SKJr   " S S\5      rg)    )annotations)AnyDictIteratorListOptionalTuple)Document)
BaseLoaderc                  v    \ rS rSrSr   S
             SS jjrSS jr    SS jrSS jrSS jr	S	r
g)KineticaLoader
   a>  Load from `Kinetica` API.

Each document represents one row of the result. The `page_content_columns`
are written into the `page_content` of the document. The `metadata_columns`
are written into the `metadata` of the document. By default, all columns
are written into the `page_content` and none into the `metadata`.

Nc                n    Xl         X l        X0l        X@l        XPl        X`l        Ub  Xpl        g/ U l        g)a(  Initialize Kinetica document loader.

Args:
    query: The query to run in Kinetica.
    parameters: Optional. Parameters to pass to the query.
    page_content_columns: Optional. Columns written to Document `page_content`.
    metadata_columns: Optional. Columns written to Document `metadata`.
N)queryhostusernamepassword
parameterspage_content_columnsmetadata_columns)selfr   r   r   r   r   r   r   s           l/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/kinetica_loader.py__init__KineticaLoader.__init__   s7    $ 
	  $$8!4D4P 0VX    c           
          SSK JnJn   UR	                  5       nU R
                  Ul        U R                  Ul        U" U R                  US9nU" X@R                  5       nUR                  R                  5       nU Vs/ sH  n[        [        Xg5      5      PM     nnS S S 5        U$ ! [         a    [        S5      ef = fs  snf ! , (       d  f       W$ = f! [         a  n	[        SU	 35        / n S n	A	U$ S n	A	ff = f)Nr   )GPUdbGPUdbSqlIteratorzZCould not import Kinetica python API. Please install it with `pip install gpudb==7.2.0.9`.)r   optionszAn error occurred: )gpudbr   r   ImportErrorOptionsr   r   r   r   type_mapkeysdictzip	Exceptionprint)
r   r   r   r   connrecordscolumn_namesrecordquery_resultes
             r   _execute_queryKineticaLoader._execute_query.   s    	5	mmoG#}}G#}}Gdii9D!$

3w&//446NUVgFS%> ?gV 4 +  	G 	  W 43 	  	's+,L		sS   B( AC  C?CCC (B>C
CC C 
C="C88C=c                    U R                   (       a  U R                   O/ nU R                  (       a  U R                  O/ nUc#  U(       a  [        US   R                  5       5      nUc  / nU=(       d    / U4$ )Nr   )r   r   listr$   )r   r-   r   r   s       r   _get_columnsKineticaLoader._get_columnsH   sq     *.)B)BD%% 	 594I4I400r'L#'Q(<(<(>#? #!#)r+;;;r   c              #    ^	#    U R                  5       n[        U[        5      (       a  [        SU 35        / $ U R	                  U5      u  m	nST	;   a  [        US   R                  5       5      m	U Hc  nSR                  U	4S jUR                  5        5       5      nUR                  5        VVs0 sH  u  pVXR;   d  M  XV_M     nnn[        XGS9nUv   Me     g s  snnf 7f)Nz$An error occurred during the query: *r   
c              3  D   >#    U H  u  pUT;   d  M  U S U 3v   M     g7f)z: N ).0kvr   s      r   	<genexpr>+KineticaLoader.lazy_load.<locals>.<genexpr>^   s*      %(3q<P7P1#Rss     )page_contentmetadata)
r/   
isinstancer'   r(   r3   r2   r$   joinitemsr
   )
r   r-   r   rowr?   r;   r<   r@   docr   s
            @r   	lazy_loadKineticaLoader.lazy_loadU   s     **,lI..8GHI151B1B<1P..&&#'Q(<(<(>#? C99 %(+		% L *-N8MHNHCI   Os   B-C0
C>CCc                4    [        U R                  5       5      $ )z Load data into document objects.)r2   rF   )r   s    r   loadKineticaLoader.loade   s    DNN$%%r   )r   r   r   r   r   r   r   )NNN)r   strr   rK   r   rK   r   rK   r   zOptional[Dict[str, Any]]r   Optional[List[str]]r   rL   )returnList[Dict[str, Any]])r-   rN   rM   zTuple[List[str], List[str]])rM   zIterator[Document])rM   zList[Document])__name__
__module____qualname____firstlineno____doc__r   r/   r3   rF   rI   __static_attributes__r9   r   r   r   r   
   s     044804YY Y 	Y
 Y -Y 2Y .Y44<0<	$< &r   r   N)
__future__r   typingr   r   r   r   r   r	   langchain_core.documentsr
   )langchain_community.document_loaders.baser   r   r9   r   r   <module>rY      s"    " = = - @]&Z ]&r   