
    dh                     R    S r SSKJrJrJr  SSKJr  SSKJrJ	r	J
r
   " S S\5      rg)zUtil that calls WolframAlpha.    )AnyDictOptional)get_from_dict_or_env)	BaseModel
ConfigDictmodel_validatorc                       \ rS rSr% SrSr\\S'   Sr\	\
   \S'   \" SS9r\" SS	9\S
\S\4S j5       5       rS\
S\
4S jrSrg)WolframAlphaAPIWrapper	   zWrapper 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                     [        USS5      nX!S'    SSKnUR                  U5      nXAS'   U$ ! [         a    [        S5      ef = f)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        c/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/utilities/wolfram_alpha.pyvalidate_environment+WolframAlphaAPIWrapper.validate_environment   sp     3)+@
 )<$%	 $$%89#)   	D 	s	   . Aqueryc                     U R                   R                  U5      n [        UR                  5      R                  n[        UR
                  5      R                  nUb  US:X  a  gSU SU 3$ ! [         a     gf = f)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   runWolframAlphaAPIWrapper.run2   s{    !!''.	<chh,,J#++&++F >Vr\;!*[AA  	<;	<s   >A- -
A:9A: )__name__
__module____qualname____firstlineno____doc__r   r   __annotations__r   r   strr   model_configr	   classmethodr   r   r+   __static_attributes__r-       r   r   r   	   st    	 NC)-#-L (#$ 3   $(B B Br8   r   N)r2   typingr   r   r   langchain_core.utilsr   pydanticr   r   r	   r   r-   r8   r   <module>r<      s%    # & & 5 ; ;7BY 7Br8   