Ë
    µŒjÌ  ã                   óR   — d Z ddlmZmZmZ ddlmZ ddlmZm	Z	m
Z
  G d„ de«      Zy)zUtil that calls WolframAlpha.é    )ÚAnyÚDictÚOptional)Úget_from_dict_or_env)Ú	BaseModelÚ
ConfigDictÚmodel_validatorc                   óˆ   — e Zd ZU dZdZeed<   dZee	   ed<    e
d¬«      Z ed¬«      ed	ed
efd„«       «       Zde	d
e	fd„Zy)ÚWolframAlphaAPIWrapperzüWrapper for Wolfram Alpha.

    Docs for using:

    1. Go to wolfram alpha and sign up for a developer account
    2. Create an app and get your APP ID
    3. Save your APP ID into WOLFRAM_ALPHA_APPID env variable
    4. pip install wolframalpha

    NÚwolfram_clientÚwolfram_alpha_appidÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó�   — t        |dd«      }||d<   	 ddl}|j                  |«      }||d<   |S # t        $ r t        d«      ‚w xY w)z?Validate that api key and python package exists in environment.r   ÚWOLFRAM_ALPHA_APPIDr   NzPwolframalpha is not installed. Please install it with `pip install wolframalpha`r   )r   ÚwolframalphaÚImportErrorÚClient)Úclsr   r   r   Úclients        úu/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/wolfram_alpha.pyÚvalidate_environmentz+WolframAlphaAPIWrapper.validate_environment   st   € ô 3ØÐ)Ð+@ó
Ðð )<ˆÐ$Ñ%ð	Ûð ×$Ñ$Ð%8Ó9ˆØ#)ˆÐÑ àˆøô ò 	ÜðDóð ð	ús	   ”0 °AÚqueryc                 óô   — | j                   j                  |«      }	 t        |j                  «      j                  }t        |j
                  «      j                  }|�|dk(  ryd|› d|› �S # t        $ r Y yw xY w)z0Run query through WolframAlpha and parse result.z&Wolfram Alpha wasn't able to answer itÚ z&No good Wolfram Alpha Result was foundzAssumption: z
 
Answer: )r   r   ÚnextÚpodsÚtextÚresultsÚStopIteration)Úselfr   ÚresÚ
assumptionÚanswers        r   ÚrunzWolframAlphaAPIWrapper.run2   s{   € à×!Ñ!×'Ñ'¨Ó.ˆð	<Ü˜cŸh™h›×,Ñ,ˆJÜ˜#Ÿ+™+Ó&×+Ñ+ˆFð ˆ>˜V rš\à;à! * ¨[¸¸ÐAÐAøô ò 	<Ù;ð	<ús   �>A+ Á+	A7Á6A7)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   Ústrr   Úmodel_configr	   Úclassmethodr   r   r)   © ó    r   r   r   	   st   … ñ	ð €N�CÓØ)-Ð˜ #™Ó-áØô€Lñ ˜(Ô#Øð¨$ð °3ò ó ó $ðð(B˜ð B ô Br3   r   N)r-   Útypingr   r   r   Úlangchain_core.utilsr   Úpydanticr   r   r	   r   r2   r3   r   Ú<module>r7      s%   ðÙ #ç &Ñ &å 5ß ;Ñ ;ô7B˜Yõ 7Br3   