Ë
    µŒjW
  ã                  óX   — d dl mZ d dlmZmZmZmZ d dlmZ erd dl	m
Z
  G d„ d«      Zy)é    )Úannotations)ÚTYPE_CHECKINGÚIteratorÚListÚOptional)Úget_from_env©ÚODPSc                  óT   — e Zd ZdZdd„Zedddœ	 	 	 	 	 	 	 	 	 d	d„«       Zd
d„Zdd„Zy)ÚMaxComputeAPIWrapperz7Interface for querying Alibaba Cloud MaxCompute tables.c                ó   — || _         y)zvInitialize MaxCompute document loader.

        Args:
            client: odps.ODPS MaxCompute client object.
        N)Úclient)Úselfr   s     ús/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/max_compute.pyÚ__init__zMaxComputeAPIWrapper.__init__   s   € ð ˆ�ó    N)Ú	access_idÚsecret_access_keyc               óò   — 	 ddl m} |xs t        dd«      }|xs t        dd«      } |||||¬	«      }|j	                  |«      st        d
|› d�«      ‚ | |«      S # t        $ r}t        d«      |‚d}~ww xY w)az  Convenience constructor that builds the odsp.ODPS MaxCompute client from
            given parameters.

        Args:
            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	   zCould not import pyodps python package. Please install it with `pip install pyodps` or refer to https://pyodps.readthedocs.io/.Nr   ÚMAX_COMPUTE_ACCESS_IDr   ÚMAX_COMPUTE_SECRET_ACCESS_KEY)r   r   ÚprojectÚendpointzThe project "z" does not exist.)Úodpsr
   ÚImportErrorr   Úexist_projectÚ
ValueError)Úclsr   r   r   r   r
   Úexr   s           r   Úfrom_paramsz MaxComputeAPIWrapper.from_params   s¦   € ð,	Ý!ð ÒS¤¨kÐ;RÓ!Sˆ	Ø-ò 
´ØÐ!@ó2
Ðñ ØØ/ØØô	
ˆð ×#Ñ# GÔ,Ü˜}¨W¨IÐ5FÐGÓHÐHá�6‹{Ðøô' ò 	Üð2óð ð	ûð	ús   ‚A Á	A6Á%A1Á1A6c              #  ó  K  — | j                   j                  |«      j                  «       5 }|j                  dk(  rt	        d«      ‚|D ]  }|D ��ci c]  \  }}||“Œ
 c}}–— Œ 	 d d d «       y c c}}w # 1 sw Y   y xY w­w)Nr   zTable contains no data.)r   Úexecute_sqlÚopen_readerÚcountr   )r   ÚqueryÚreaderÚrecordÚkÚvs         r   Ú
lazy_queryzMaxComputeAPIWrapper.lazy_queryC   sw   è ø€ à�[‰[×$Ñ$ UÓ+×7Ñ7Ô9¸VØ�|‰|˜qÒ Ü Ð!:Ó;Ð;Û �Ù(.Ô/©¡  1�q˜!‘t¨Ò/Ó/ñ !÷ :Ð9ùó 0÷	 :Ð9üs.   ‚*B¬%A6ÁA0
ÁA6Á'	BÁ0A6Á6A?Á;Bc                ó6   — t        | j                  |«      «      S )N)Úlistr*   )r   r%   s     r   r%   zMaxComputeAPIWrapper.queryK   s   € Ü�D—O‘O EÓ*Ó+Ð+r   )r   r
   )
r   Ústrr   r-   r   úOptional[str]r   r.   Úreturnr   )r%   r-   r/   zIterator[dict])r%   r-   r/   z
List[dict])	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclassmethodr    r*   r%   © r   r   r   r      sa   „ ÙAóð ð $(Ø+/ñ*àð*ð ð*ð
 !ð*ð )ð*ð 
ò*ó ð*óX0ô,r   r   N)Ú
__future__r   Útypingr   r   r   r   Úlangchain_core.utilsr   r   r
   r   r5   r   r   Ú<module>r9      s#   ðÝ "ç :Ó :å -áÝ÷A,ò A,r   