Ë
    7 |h9  ã                   ó^   — d Z ddlmZmZmZmZ ddlmZmZ ddl	m
Z
mZmZmZ  G d„ de
«      Zy)z&Util that calls Google Finance Search.é    )ÚAnyÚDictÚOptionalÚcast)Úconvert_to_secret_strÚget_from_dict_or_env)Ú	BaseModelÚ
ConfigDictÚ	SecretStrÚ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)ÚGoogleFinanceAPIWrappera`  Wrapper for SerpApi's Google Finance API

    You can create SerpApi.com key by signing up at: https://serpapi.com/users/sign_up.
    The wrapper uses the SerpApi.com python package:
    https://serpapi.com/integrations/python
    To use, you should have the environment variable ``SERPAPI_API_KEY``
    set with your API key, or pass `serp_api_key` as a named parameter
    to the constructor.
    Example:
        .. code-block:: python
        from langchain_community.utilities import GoogleFinanceAPIWrapper
        google_Finance = GoogleFinanceAPIWrapper()
        google_Finance.run('langchain')
    NÚserp_search_engineÚserp_api_keyÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó„   — t        t        |dd«      «      |d<   	 ddlm} |}||d<   |S # t        $ r t	        d«      ‚w xY w)z?Validate that api key and python package exists in environment.r   ÚSERPAPI_API_KEYr   )ÚSerpApiClientzigoogle-search-results is not installed. Please install it with `pip install google-search-results>=2.4.2`r   )r   r   Úserpapir   ÚImportError)Úclsr   r   r   s       úk/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/utilities/google_finance.pyÚvalidate_environmentz,GoogleFinanceAPIWrapper.validate_environment    sc   € ô "7Ü  ¨Ð9JÓKó"
ˆˆ~Ñð	Ý-ð +ÐØ'9ˆÐ#Ñ$àˆøô ò 	Üðóð ð	ús   ›* ª?Úqueryc                 ó<  — t        t        | j                  «      }d|j                  «       |dœ}i }| j	                  |«      }|j                  «       }|sd|z   S |j                  di «      }d|z   dz   }d|v rM|j                  dg «      d   }|d	   }	|d
   }
|d   }|d   }|d   }|d|	› dd|
› dz   d|› dz   d|› dz   z  }n|dz  }|D ]N  }|dk(  s|dk(  s|dk(  sŒ||z  }|dz  }|t        ||   d   d
   «      z  }|dz  }|||   d   d   d   z  }|dz  }ŒP |S )z-Run query through Google Finance with SerpapiÚgoogle_finance)ÚengineÚapi_keyÚqz"Nothing was found from the query: Úmarketsz
Query: ú
Úfutures_chainr   ÚstockÚpriceÚprice_movementÚ
percentageÚmovementzstock: zprice: zpercentage: z
movement: zNo summary information
ÚusÚasiaÚeuropez
: price = z, movement = )r   r   r   Úget_secret_valuer   Úget_dictÚgetÚstr)Úselfr   Úserpapi_api_keyÚparamsÚtotal_resultsÚclientr%   Úresr'   r(   r)   Útempr+   r,   Úkeys                  r   ÚrunzGoogleFinanceAPIWrapper.run6   s±  € äœy¨$×*;Ñ*;Ó<ˆà&Ø&×7Ñ7Ó9Øñ
ˆð ˆØ×(Ñ(¨Ó0ˆØŸ™Ó)ˆáØ7¸%Ñ?Ð?à×#Ñ# I¨rÓ2ˆØ˜EÑ! DÑ(ˆà˜mÑ+Ø)×-Ñ-¨o¸rÓBÀ1ÑEˆMØ! 'Ñ*ˆEØ! 'Ñ*ˆEØ Ð!1Ñ2ˆDØ˜lÑ+ˆJØ˜JÑ'ˆHØØ˜%˜ Ð#Ø˜E˜7 "Ð%ñ&à   ¨BÐ/ñ0ð ˜x˜j¨Ð+ñ,ñ‰Cð Ð-Ñ-ˆCàò 	ˆCØt’ ¨¢°C¸8³OØs‘
Ø|Ñ#Ø”s˜7 3™<¨™?¨7Ñ3Ó4Ñ4ØÑ&Øw˜s‘| A‘Ð'7Ñ8¸ÑDÑDØt‘‘ð	ð ˆ
ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   r   r
   Úmodel_configr   Úclassmethodr   r   r3   r<   © r=   r   r   r   	   sr   … ñð #Ð˜Ó"Ø(,€L(˜9Ñ%Ó,áØô€Lñ ˜(Ô#Øð¨$ð °3ò ó ó $ðð(-˜ð - ô -r=   r   N)rA   Útypingr   r   r   r   Úlangchain_core.utilsr   r   Úpydanticr	   r
   r   r   r   rE   r=   r   ú<module>rI      s%   ðÙ ,ç ,Ó ,ç Lß FÓ FôZ˜iõ Zr=   