§
    šŠtj  ã                  ój   — d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ  G d„ de
¦  «        ZdS )	é    )Úannotations)ÚAnyÚIteratorÚOptionalÚSequence)ÚDocument)Ú
BaseLoader)ÚMaxComputeAPIWrapperc                  óJ   — e Zd ZdZdddœdd„Zedddœdd„¦   «         Zdd„ZdS )ÚMaxComputeLoaderz+Load from `Alibaba Cloud MaxCompute` table.N)Úpage_content_columnsÚmetadata_columnsÚqueryÚstrÚapi_wrapperr
   r   úOptional[Sequence[str]]r   c               ó>   — || _         || _        || _        || _        dS )a  Initialize Alibaba Cloud MaxCompute document loader.

        Args:
            query: SQL query to execute.
            api_wrapper: MaxCompute API wrapper.
            page_content_columns: The columns to write into the `page_content` of the
                Document. If unspecified, all columns will be written to `page_content`.
            metadata_columns: The columns to write into the `metadata` of the Document.
                If unspecified, all columns not added to `page_content` will be written.
        N)r   r   r   r   )Úselfr   r   r   r   s        ún/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/max_compute.pyÚ__init__zMaxComputeLoader.__init__   s)   € ð$ ˆŒ
Ø&ˆÔØ$8ˆÔ!Ø 0ˆÔÐÐó    ©Ú	access_idÚsecret_access_keyÚendpointÚprojectr   úOptional[str]r   Úkwargsr   Úreturnc               óF   — t          j        ||||¬¦  «        } | ||fi |¤ŽS )až  Convenience constructor that builds the MaxCompute API wrapper from
            given parameters.

        Args:
            query: SQL query to execute.
            endpoint: MaxCompute endpoint.
            project: A project is a basic organizational unit of MaxCompute, which is
                similar to a database.
            access_id: MaxCompute access ID. Should be passed in directly or set as the
                environment variable `MAX_COMPUTE_ACCESS_ID`.
            secret_access_key: MaxCompute secret access key. Should be passed in
                directly or set as the environment variable
                `MAX_COMPUTE_SECRET_ACCESS_KEY`.
        r   )r
   Úfrom_params)Úclsr   r   r   r   r   r   r   s           r   r!   zMaxComputeLoader.from_params%   sA   € õ2 +Ô6Ø�g¨ÐFWð
ñ 
ô 
ˆð ˆs�5˜+Ð0Ð0¨Ð0Ð0Ð0r   úIterator[Document]c              #  ó¾  ‡ ‡K  — ‰ j                              ‰ j        ¦  «        D ]¸}‰ j        r!ˆ fd„|                     ¦   «         D ¦   «         Šn|Šd                     d„ ‰                     ¦   «         D ¦   «         ¦  «        }‰ j        r!ˆ fd„|                     ¦   «         D ¦   «         }n ˆfd„|                     ¦   «         D ¦   «         }t          ||¬¦  «        V — Œ¹d S )Nc                ó.   •— i | ]\  }}|‰j         v ¯||“ŒS © )r   ©Ú.0ÚkÚvr   s      €r   ú
<dictcomp>z.MaxComputeLoader.lazy_load.<locals>.<dictcomp>F   s3   ø€ ð %ð %ð %Ù!˜Q °A¸Ô9RÐ4RÐ4R�A�qÐ4RÐ4RÐ4Rr   ú
c              3  ó*   K  — | ]\  }}|› d |› �V — ŒdS )z: Nr&   )r(   r)   r*   s      r   ú	<genexpr>z-MaxComputeLoader.lazy_load.<locals>.<genexpr>K   s0   è è € Ð$WÐ$W±T°Q¸¨ [ [¨Q [ [Ð$WÐ$WÐ$WÐ$WÐ$WÐ$Wr   c                ó.   •— i | ]\  }}|‰j         v ¯||“ŒS r&   )r   r'   s      €r   r+   z.MaxComputeLoader.lazy_load.<locals>.<dictcomp>M   s,   ø€ ÐWÐWÐW¡T Q¨¸AÀÔAVÐ<VÐ<V˜A˜qÐ<VÐ<VÐ<Vr   c                ó$   •— i | ]\  }}|‰v¯	||“ŒS r&   r&   )r(   r)   r*   Úpage_content_datas      €r   r+   z.MaxComputeLoader.lazy_load.<locals>.<dictcomp>O   s*   ø€ ÐWÐWÐW¡T Q¨¸AÐEVÐ<VÐ<V˜A˜qÐ<VÐ<VÐ<Vr   )Úpage_contentÚmetadata)r   r   r   ÚitemsÚjoinr   r   )r   Úrowr2   r3   r1   s   `   @r   Ú	lazy_loadzMaxComputeLoader.lazy_loadC   s  øøè è € ØÔ#×)Ò)¨$¬*Ñ5Ô5ð 	Ið 	IˆCØÔ(ð (ð%ð %ð %ð %Ø%(§Y¢Y¡[¤[ð%ñ %ô %Ð!Ð!ð %(Ð!ØŸ9š9Ð$WÐ$WÐ=N×=TÒ=TÑ=VÔ=VÐ$WÑ$WÔ$WÑWÔWˆLØÔ$ð XØWÐWÐWÐW¨S¯YªY©[¬[ÐWÑWÔW��àWÐWÐWÐW¨S¯YªY©[¬[ÐWÑWÔW�Ý¨¸xÐHÑHÔHÐHÐHÐHÐHð	Ið 	Ir   )r   r   r   r
   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclassmethodr!   r7   r&   r   r   r   r      sŒ   € € € € € Ø5Ð5ð 9=Ø48ð1ð 1ð 1ð 1ð 1ð 1ð. ð $(Ø+/ð1ð 1ð 1ð 1ð 1ñ „[ð1ð:Ið Ið Ið Ið Ið Ir   r   N)Ú
__future__r   Útypingr   r   r   r   Úlangchain_core.documentsr   Ú)langchain_community.document_loaders.baser	   Ú)langchain_community.utilities.max_computer
   r   r&   r   r   ú<module>rB      s¹   ðØ "Ð "Ð "Ð "Ð "Ð "à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à -Ð -Ð -Ð -Ð -Ð -à @Ð @Ð @Ð @Ð @Ð @Ø JÐ JÐ JÐ JÐ JÐ JðEIð EIð EIð EIð EI�zñ EIô EIð EIð EIð EIr   