§
    šŠtj1  ã                  óf   — 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dS )é    )Ú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dS )Ú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`.

    NÚqueryÚstrÚhostÚusernameÚpasswordÚ
parametersúOptional[Dict[str, Any]]Úpage_content_columnsúOptional[List[str]]Úmetadata_columnsc                óp   — || _         || _        || _        || _        || _        || _        |�|ng | _        dS )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)r   r   r   r   r   r   r   )Úselfr   r   r   r   r   r   r   s           úr/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/kinetica_loader.pyÚ__init__zKineticaLoader.__init__   sI   € ð$ ˆŒ
ØˆŒ	Ø ˆŒØ ˆŒØ$ˆŒØ$8ˆÔ!Ø4DÐ4PÐ 0Ð 0ÐVXˆÔÐÐó    ÚreturnúList[Dict[str, Any]]c                óÌ  ‡— 	 ddl m}m} n# t          $ r t          d¦  «        ‚w xY w	 |                     ¦   «         }| j        |_        | j        |_         || j        |¬¦  «        } ||| j        ¦  «        5 }|j	         
                    ¦   «         Šˆfd„|D ¦   «         }d d d ¦  «         n# 1 swxY w Y   n+# t          $ r}t          d|› �¦  «         g }Y d }~nd }~ww xY w|S )Nr   )ÚGPUdbÚGPUdbSqlIteratorzZCould not import Kinetica python API. Please install it with `pip install gpudb==7.2.0.9`.)r   Úoptionsc                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S © )ÚdictÚzip)Ú.0ÚrecordÚcolumn_namess     €r   ú
<listcomp>z1KineticaLoader._execute_query.<locals>.<listcomp>@   s+   ø€ ÐVÐVÐVÀF¥¥S¨°vÑ%>Ô%>Ñ ?Ô ?ÐVÐVÐVr   zAn error occurred: )Úgpudbr    r!   ÚImportErrorÚOptionsr   r   r   r   Útype_mapÚkeysÚ	ExceptionÚprint)	r   r    r!   r"   ÚconnÚrecordsÚquery_resultÚer)   s	           @r   Ú_execute_queryzKineticaLoader._execute_query.   s†  ø€ ð	Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5øÝð 	ð 	ð 	ÝðGñô ð ð	øøøð	Ø—m’m‘o”oˆGØ#œ}ˆGÔØ#œ}ˆGÔà�5˜dœi°Ð9Ñ9Ô9ˆDà!Ð! $¨¬
Ñ3Ô3ð W°wØ&Ô/×4Ò4Ñ6Ô6�ØVÐVÐVÐVÈgÐVÑVÔV�ðWð Wð Wñ Wô Wð Wð Wð Wð Wð Wð Wøøøð Wð Wð Wð Wøøõ ð 	ð 	ð 	ÝÐ+¨Ð+Ð+Ñ,Ô,Ð,ØˆLˆLˆLˆLˆLˆLøøøøð	øøøð ÐsD   ƒ Œ&ªAB9 Á9(B-Â!B9 Â-B1Â1B9 Â4B1Â5B9 Â9
C!ÃCÃC!r4   úTuple[List[str], List[str]]c                ó¬   — | j         r| j         ng }| j        r| j        ng }|€)|r't          |d                              ¦   «         ¦  «        }|€g }|pg |fS )Nr   )r   r   Úlistr/   )r   r4   r   r   s       r   Ú_get_columnszKineticaLoader._get_columnsH   sz   € ð *.Ô)BÐJˆDÔ%Ð%Èð 	ð 59Ô4IÐQ˜4Ô0Ð0ÈrÐØÐ'¨LÐ'Ý#'¨°Q¬×(<Ò(<Ñ(>Ô(>Ñ#?Ô#?Ð ØÐ#Ø!ÐØ#Ð) rÐ+;Ð;Ð;r   úIterator[Document]c              #  óè  ‡‡K  — |                       ¦   «         }t          |t          ¦  «        rt          d|› �¦  «         g S |                      |¦  «        \  ŠŠd‰v r't          |d                              ¦   «         ¦  «        Š|D ]j}d                     ˆfd„|                     ¦   «         D ¦   «         ¦  «        }ˆfd„|                     ¦   «         D ¦   «         }t          ||¬¦  «        }|V — Œkd S )Nz$An error occurred during the query: Ú*r   ú
c              3  ó4   •K  — | ]\  }}|‰v ¯	|› d |› �V — ŒdS )z: Nr$   )r'   ÚkÚvr   s      €r   ú	<genexpr>z+KineticaLoader.lazy_load.<locals>.<genexpr>^   sE   øè è € ð %ð %Ù $  1°qÐ<PÐ7PÐ7P�1��˜��Ð7PÐ7PÐ7PÐ7Pð%ð %r   c                ó$   •— i | ]\  }}|‰v ¯	||“ŒS r$   r$   )r'   r@   rA   r   s      €r   ú
<dictcomp>z,KineticaLoader.lazy_load.<locals>.<dictcomp>a   s*   ø€ ÐNÐNÐN¡  A¸Ð=MÐ8MÐ8M˜˜1Ð8MÐ8MÐ8Mr   )Úpage_contentÚmetadata)
r6   Ú
isinstancer0   r1   r:   r9   r/   ÚjoinÚitemsr
   )r   r4   ÚrowrE   rF   Údocr   r   s         @@r   Ú	lazy_loadzKineticaLoader.lazy_loadU   s&  øøè è € Ø×*Ò*Ñ,Ô,ˆÝ�l¥IÑ.Ô.ð 	ÝÐG¸ÐGÐGÑHÔHÐHØˆIØ15×1BÒ1BÀ<Ñ1PÔ1PÑ.ÐÐ.ØÐ&Ð&Ð&Ý#'¨°Q¬×(<Ò(<Ñ(>Ô(>Ñ#?Ô#?Ð Øð 	ð 	ˆCØŸ9š9ð %ð %ð %ð %Ø(+¯	ª	©¬ð%ñ %ô %ñ ô ˆLð OÐNÐNÐN¨¯ª©¬ÐNÑNÔNˆHÝ¨¸xÐHÑHÔHˆCØˆIˆIˆIˆIð	ð 	r   úList[Document]c                óD   — t          |                      ¦   «         ¦  «        S )z Load data into document objects.)r9   rL   )r   s    r   ÚloadzKineticaLoader.loade   s   € å�D—N’NÑ$Ô$Ñ%Ô%Ð%r   )NNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   )r4   r   r   r7   )r   r;   )r   rM   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r6   r:   rL   rO   r$   r   r   r   r   
   s—   € € € € € ðð ð 04Ø48Ø04ðYð Yð Yð Yð Yð4ð ð ð ð4<ð <ð <ð <ðð ð ð ð &ð &ð &ð &ð &ð &r   r   N)Ú
__future__r   Útypingr   r   r   r   r   r	   Úlangchain_core.documentsr
   Ú)langchain_community.document_loaders.baser   r   r$   r   r   ú<module>rX      s©   ðØ "Ð "Ð "Ð "Ð "Ð "à =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à -Ð -Ð -Ð -Ð -Ð -à @Ð @Ð @Ð @Ð @Ð @ð]&ð ]&ð ]&ð ]&ð ]&�Zñ ]&ô ]&ð ]&ð ]&ð ]&r   