§
    šŠtj:  ã                   óf   — 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dS )z&Util that calls Google Scholar 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dS )ÚGoogleTrendsAPIWrapperaa  Wrapper for SerpApi's Google Scholar 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 GoogleTrendsAPIWrapper
        google_trends = GoogleTrendsAPIWrapper()
        google_trends.run('langchain')
    NÚserp_search_engineÚserp_api_keyÚforbid)ÚextraÚbefore)ÚmodeÚ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       úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/utilities/google_trends.pyÚvalidate_environmentz+GoogleTrendsAPIWrapper.validate_environment$   sŒ   € õ "7Ý  ¨Ð9JÑKÔKñ"
ô "
ˆˆ~Ñð	Ø-Ð-Ð-Ð-Ð-Ð-Ð-øåð 	ð 	ð 	Ýðñô ð ð	øøøð +ÐØ'9ˆÐ#Ñ$àˆs	   £* ªAÚqueryc                 ó  — t          t          | j        ¦  «        }d|                     ¦   «         |dœ}g }|                      |¦  «        }|                     ¦   «         }d|v r|d         d         nd}|sdS |d         d                              ¦   «         }|d	         d                              ¦   «         }d
„ |D ¦   «         }	t          |	¦  «        }
t          |	¦  «        }t          |	¦  «        t          |	¦  «        z  }|	d	         |	d         z
  |	d         dk    r|	d         ndz  |	d         dk    rdndz  }d|                     ¦   «         d|dœ}i }|                      |¦  «        }|                     ¦   «                              di ¦  «        }g }g }d„ |                     dg ¦  «        D ¦   «         }d„ |                     dg ¦  «        D ¦   «         }d|› d|d         › d|d         › d|d	         › d|d         › d|d         › d|d	         › d|
› d|› d|› dt          |¦  «        dz   › dd                     d „ |	D ¦   «         ¦  «        › d!d                     |¦  «        › d"d                     |¦  «        › �g}d#                     |¦  «        S )$z,Run query through Google Trends with SerpapiÚgoogle_trends)ÚengineÚapi_keyÚqÚinterest_over_timeÚtimeline_dataNzNo good Trend Result was foundr   Údateéÿÿÿÿc                 ój   — g | ]0}|                      d ¦  «        d                               d¦  «        ‘Œ1S )r   r   Úextracted_value©Úget©Ú.0Úresultss     r   ú
<listcomp>z.GoogleTrendsAPIWrapper.run.<locals>.<listcomp>Q   sE   € ð 
ð 
ð 
Ø@GˆG�KŠK˜Ñ!Ô! !Ô$×(Ò(Ð):Ñ;Ô;ð
ð 
ð 
ó    é   éd   ÚRELATED_QUERIES)r"   r#   Ú	data_typer$   Úrelated_queriesc                 ó8   — g | ]}|                      d ¦  «        ‘ŒS ©r   r+   r-   s     r   r0   z.GoogleTrendsAPIWrapper.run.<locals>.<listcomp>j   s$   € ÐWÐWÐW¨7�'—+’+˜gÑ&Ô&ÐWÐWÐWr1   Úrisingc                 ó8   — g | ]}|                      d ¦  «        ‘ŒS r8   r+   r-   s     r   r0   z.GoogleTrendsAPIWrapper.run.<locals>.<listcomp>k   s$   € ÐQÐQÐQ¨ˆw�{Š{˜7Ñ#Ô#ÐQÐQÐQr1   ÚtopzQuery: z
Date From: ú z, z

Date To: é   z
Min Value: z
Max Value: z
Average Value: z
Percent Change: ú%z
Trend values: c                 ó,   — g | ]}t          |¦  «        ‘ŒS © )Ústr)r.   Úxs     r   r0   z.GoogleTrendsAPIWrapper.run.<locals>.<listcomp>u   s   € Ð'?Ð'?Ð'?°1­¨A©¬Ð'?Ð'?Ð'?r1   z
Rising Related Queries: z
Top Related Queries: z

)r   r   r   Úget_secret_valuer   Úget_dictÚsplitÚminÚmaxÚsumÚlenr,   rA   Újoin)Úselfr   Úserpapi_api_keyÚparamsÚtotal_resultsÚclientÚclient_dictÚ
start_dateÚend_dater   Ú	min_valueÚ	max_valueÚ	avg_valueÚpercentage_changeÚtotal_results2r9   r;   Údocs                     r   ÚrunzGoogleTrendsAPIWrapper.run:   sL  € å�y¨$Ô*;Ñ<Ô<ˆà%Ø&×7Ò7Ñ9Ô9Øð
ð 
ˆð  ˆØ×(Ò(¨Ñ0Ô0ˆØ—o’oÑ'Ô'ˆð $ {Ð2Ð2ð Ð,Ô-¨oÔ>Ð>àð 	ð ð 	4Ø3Ð3à" 1Ô% fÔ-×3Ò3Ñ5Ô5ˆ
Ø  Ô$ VÔ,×2Ò2Ñ4Ô4ˆð
ð 
ØKXð
ñ 
ô 
ˆõ ˜‘K”Kˆ	Ý˜‘K”Kˆ	Ý˜‘K”K¥# f¡+¤+Ñ-ˆ	à�BŒZ˜& œ)Ñ#Ø" 1œI¨šN˜Nˆv�aŒyˆy°ñ3à˜Q”i 1’n�nˆsˆs¨!ñ-ð 	ð &Ø&×7Ò7Ñ9Ô9Ø*Øð	
ð 
ˆð ˆØ×(Ò(¨Ñ0Ô0ˆØŸšÑ*Ô*×.Ò.Ð/@À"ÑEÔEˆØˆØˆàWÐW°n×6HÒ6HÈÐSUÑ6VÔ6VÐWÑWÔWˆØQÐQ°>×3EÒ3EÀeÈRÑ3PÔ3PÐQÑQÔQˆð	5�eð 	5ð 	5Ø$ Qœ-ð	5ð 	5Ø*4°Q¬-ð	5ð 	5Ø;EÀb¼>ð	5ð 	5à  œð	5ð 	5à&.¨q¤kð	5ð 	5à4<¸R´Lð	5ð 	5ð $ð	5ð 	5ð $ð		5ð 	5ð
 (ð	5ð 	5õ  #Ð#4Ñ5Ô5¸Ñ;ð	5ð 	5ð "ŸYšYÐ'?Ð'?¸Ð'?Ñ'?Ô'?Ñ@Ô@ð	5ð 	5ð (,§y¢y°Ñ'8Ô'8ð	5ð 	5ð %)§I¢I¨c¡N¤Nð	5ð 	5ð
ˆð �{Š{˜3ÑÔÐr1   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   r   r
   Úmodel_configr   Úclassmethodr   r   rA   rY   r@   r1   r   r   r   	   sÑ   € € € € € € ðð ð& #Ð˜Ð"Ð"Ñ"Ø(,€L�(˜9Ô%Ð,Ð,Ñ,à�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð(@ ˜ð @  ð @ ð @ ð @ ð @ ð @ ð @ r1   r   N)r]   Útypingr   r   r   r   Úlangchain_core.utilsr   r   Úpydanticr	   r
   r   r   r   r@   r1   r   ú<module>rd      s©   ðØ ,Ð ,à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðq ð q ð q ð q ð q ˜Yñ q ô q ð q ð q ð q r1   