§
    æ˜ºhH  ã                   óf   — d Z ddlmZmZmZmZ ddlmZmZm	Z	m
Z
 ddlmZmZ  G d„ de¦  «        ZdS )z&Util that calls Google Finance Search.é    )ÚAnyÚDictÚOptionalÚcast)Ú	BaseModelÚExtraÚ	SecretStrÚroot_validator)Úconvert_to_secret_strÚget_from_dict_or_envc                   ó’   — e Zd ZU dZeed<   dZee         ed<    G d„ d¦  «        Z	 e
¦   «         dedefd	„¦   «         Zd
edefd„ZdS )Ú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')
    Úserp_search_engineNÚserp_api_keyc                   ó    — e Zd ZdZej        ZdS )úGoogleFinanceAPIWrapper.Configz'Configuration for this pydantic object.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚforbidÚextra© ó    út/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/utilities/google_finance.pyÚConfigr      s   € € € € € Ø5Ð5à”ˆˆˆr   r   ÚvaluesÚreturnc                 ó    — t          t          |dd¦  «        ¦  «        |d<   	 ddlm} n# t          $ r t	          d¦  «        ‚w xY w|}||d<   |S )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       r   Úvalidate_environmentz,GoogleFinanceAPIWrapper.validate_environment    sŒ   € õ "7Ý  ¨Ð9JÑKÔKñ"
ô "
ˆˆ~Ñð	Ø-Ð-Ð-Ð-Ð-Ð-Ð-øåð 	ð 	ð 	Ýðñô ð ð	øøøð +ÐØ'9ˆÐ#Ñ$àˆs	   £* ªAÚqueryc                 óº  — t          t          | j        ¦  «        }d|                     ¦   «         |dœ}i }|                      |¦  «        }|                     ¦   «         }|sd|z   S |                     di ¦  «        }d|z   dz   }d|v rc|                     dg ¦  «        d         }|d	         }	|d
         }
|d         }|d         }|d         }|d|	› d�d|
› d�z   d|› d�z   d|› d�z   z  }n|dz  }|D ]i}|dk    s|dk    s|dk    rU||z  }|dz  }|t          ||         d         d
         ¦  «        z  }|dz  }|||         d         d         d         z  }|dz  }Œj|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/   r0   Útempr2   r3   Úkeys                  r   ÚrunzGoogleFinanceAPIWrapper.run5   sà  € å�y¨$Ô*;Ñ<Ô<ˆà&Ø&×7Ò7Ñ9Ô9Øð
ð 
ˆð ˆØ×(Ò(¨Ñ0Ô0ˆØŸšÑ)Ô)ˆàð 	@Ø7¸%Ñ?Ð?à×#Ò# I¨rÑ2Ô2ˆØ˜EÑ! DÑ(ˆà˜mÐ+Ð+Ø)×-Ò-¨o¸rÑBÔBÀ1ÔEˆMØ! 'Ô*ˆEØ! 'Ô*ˆEØ Ð!1Ô2ˆDØ˜lÔ+ˆJØ˜JÔ'ˆHØØ#˜%Ð#Ð#Ð#Ø%˜EÐ%Ð%Ð%ñ&à/ Ð/Ð/Ð/ñ0ð ,˜xÐ+Ð+Ð+ñ,ñˆCˆCð Ð-Ñ-ˆCàð 	ð 	ˆCØ�t’� ¨¢ °C¸8²O°OØ�s‘
�Ø�|Ñ#�Ø•s˜7 3œ<¨œ?¨7Ô3Ñ4Ô4Ñ4�Ø�Ñ&�Ø�w˜s”| A”Ð'7Ô8¸ÔDÑD�Ø�t‘�øàˆ
r   )r   r   r   r   r   Ú__annotations__r   r   r	   r   r
   r   r%   r:   rC   r   r   r   r   r      sÄ   € € € € € € ðð ð ÐÐÑØ(,€L�(˜9Ô%Ð,Ð,Ñ,ðð ð ð ð ñ ô ð ð
 €^ÑÔð¨$ð °4ð ð ð ñ Ôðð(-˜ð - ð -ð -ð -ð -ð -ð -r   r   N)r   Útypingr   r   r   r   Úlangchain_core.pydantic_v1r   r   r	   r
   Úlangchain_core.utilsr   r   r   r   r   r   ú<module>rH      s©   ðØ ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LðZð Zð Zð Zð Z˜iñ Zô Zð Zð Zð Zr   