Ë
    µŒjO  ã                  ó^   — d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
 d dlmZ  G d„ de«      Zy)é    )Úannotations)ÚAnyÚDictÚIteratorÚListÚOptionalÚTuple)ÚDocument)Ú
BaseLoaderc                  ób   — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 d	d„Zd
d„Z	 	 	 	 dd„Zdd„Zdd„Zy)ÚKineticaLoaderaR  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                óz   — || _         || _        || _        || _        || _        || _        |�|| _        yg | _        y)aX  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           ú~/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/document_loaders/kinetica_loader.pyÚ__init__zKineticaLoader.__init__   sE   € ð$ ˆŒ
ØˆŒ	Ø ˆŒØ ˆŒØ$ˆŒØ$8ˆÔ!Ø4DÐ4PÐ 0ˆÕÐVXˆÕó    c           
     óø  — 	 ddl m}m} 	 |j	                  «       }| j
                  |_        | j                  |_         || j                  |¬«      } ||| j                  «      5 }|j                  j                  «       }|D �cg c]  }t        t        ||«      «      ‘Œ }}d d d «       |S # t        $ r t        d«      ‚w xY wc c}w # 1 sw Y   S xY w# t        $ r}	t        d|	› �«       g }Y d }	~	|S d }	~	ww xY w)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_queryzKineticaLoader._execute_query.   sö   € ð	ß5ð	Ø—m‘m“oˆGØ#Ÿ}™}ˆGÔØ#Ÿ}™}ˆGÔá˜dŸi™i°Ô9ˆDá! $¨¯
©
Ô3°wØ&×/Ñ/×4Ñ4Ó6�ÙNUÓVÉgÀF¤¤S¨°vÓ%>Õ ?Èg�ÐV÷ 4ð Ðøô+ ò 	ÜðGóð ð	üò  W÷ 4ð Ðûô	 ò 	ÜÐ'¨ sÐ+Ô,ØŒLàÐûð		úsS   ‚B+ ‹AC Á$CÂCÂCÂ!C Â+C ÃCÃCÃC ÃC Ã	C9ÃC4Ã4C9c                óÂ   — | j                   r| j                   ng }| j                  r| j                  ng }|€|rt        |d   j                  «       «      }|€g }|xs g |fS )Nr   )r   r   Úlistr"   )r   r+   r   r   s       r   Ú_get_columnszKineticaLoader._get_columnsH   sq   € ð *.×)BÒ)BˆD×%Ò%Èð 	ð 59×4IÒ4I˜4×0Ò0ÈrÐØÐ'©LÜ#'¨°Q©×(<Ñ(<Ó(>Ó#?Ð ØÐ#Ø!ÐØ#Ò) rÐ+;Ð;Ð;r   c              #  ó²  ‡	K  — | j                  «       }t        |t        «      rt        d|› �«       g S | j	                  |«      \  Š	}d‰	v rt        |d   j                  «       «      Š	|D ]c  }dj                  ˆ	fd„|j                  «       D «       «      }|j                  «       D ��ci c]  \  }}||v sŒ||“Œ }}}t        ||¬«      }|–— Œe y c c}}w ­w)Nz$An error occurred during the query: Ú*r   Ú
c              3  ó<   •K  — | ]  \  }}|‰v sŒ|› d |› �–— Œ y­w)z: N© )Ú.0ÚkÚvr   s      €r   Ú	<genexpr>z+KineticaLoader.lazy_load.<locals>.<genexpr>^   s+   øè ø€ ð %Ù(3¡  1°qÐ<PÒ7P�1�#�R˜�s”©ùs   ƒ�)Úpage_contentÚmetadata)
r-   Ú
isinstancer%   r&   r0   r/   r"   ÚjoinÚitemsr
   )
r   r+   r   Úrowr:   r7   r8   r;   Údocr   s
            @r   Ú	lazy_loadzKineticaLoader.lazy_loadU   sÚ   øè ø€ Ø×*Ñ*Ó,ˆÜ�l¤IÔ.ÜÐ8¸¸ÐGÔHØˆIØ15×1BÑ1BÀ<Ó1PÑ.ÐÐ.ØÐ&Ñ&Ü#'¨°Q©×(<Ñ(<Ó(>Ó#?Ð ÛˆCØŸ9™9ó %Ø(+¯	©	¬ó%ó ˆLð *-¯©¬ÔN©¡  A¸Ð=MÒ8M˜˜1™¨ˆHÑNÜ¨¸xÔHˆCØ‹Iñ  ùó Oùs   ƒB%CÂ(CÂ5CÂ:Cc                ó4   — t        | j                  «       «      S )z Load data into document objects.)r/   rA   )r   s    r   ÚloadzKineticaLoader.loade   s   € ä�D—N‘NÓ$Ó%Ð%r   )NNN)r   Ústrr   rD   r   rD   r   rD   r   zOptional[Dict[str, Any]]r   úOptional[List[str]]r   rE   )ÚreturnúList[Dict[str, Any]])r+   rG   rF   zTuple[List[str], List[str]])rF   zIterator[Document])rF   zList[Document])	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r-   r0   rA   rC   r5   r   r   r   r   
   s‡   „ ñð 04Ø48Ø04ð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   r5   r   r   Ú<module>rP      s"   ðÝ "ç =× =å -å @ô]&�Zõ ]&r   