Ë
    µŒj:  ã                   ó^   — 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 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y)Ú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} |}||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       úu/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/google_trends.pyÚvalidate_environmentz+GoogleTrendsAPIWrapper.validate_environment$   sc   € ô "7Ü  ¨Ð9JÓKó"
ˆˆ~Ñð	Ý-ð +ÐØ'9ˆÐ#Ñ$àˆøô ò 	Üðóð ð	ús   ›* ª?Úqueryc                 óà  — t        t        | j                  «      }d|j                  «       |dœ}g }| j	                  |«      }|j                  «       }d|v r|d   d   nd}|sy|d   d   j                  «       }|d	   d   j                  «       }|D �	cg c]%  }	|	j                  d
«      d   j                  d«      ‘Œ' }
}	t        |
«      }t        |
«      }t        |
«      t        |
«      z  }|
d	   |
d   z
  |
d   dk7  r|
d   ndz  |
d   dk7  rdndz  }d|j                  «       d|dœ}i }| j	                  |«      }|j                  «       j                  di «      }g }g }|j                  dg «      D �	cg c]  }	|	j                  d«      ‘Œ }}	|j                  dg «      D �	cg c]  }	|	j                  d«      ‘Œ }}	d|› d|d   › d|d   › d|d	   › d|d   › d|d   › d|d	   › d|› d|› d|› dt        |«      dz   › ddj                  |
D �cg c]  }t        |«      ‘Œ c}«      › d dj                  |«      › d!dj                  |«      › �g}d"j                  |«      S c c}	w c c}	w c c}	w c c}w )#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éÿÿÿÿr   Úextracted_valueé   éd   ÚRELATED_QUERIES)r"   r#   Ú	data_typer$   Úrelated_queriesÚrisingr   ÚtopzQuery: z
Date From: Ú z, z

Date To: é   z
Min Value: z
Max Value: z
Average Value: z
Percent Change: Ú%z
Trend values: z
Rising Related Queries: z
Top Related Queries: z

)r   r   r   Úget_secret_valuer   Úget_dictÚsplitÚgetÚminÚmaxÚsumÚlenÚstrÚjoin)Úselfr   Úserpapi_api_keyÚparamsÚtotal_resultsÚclientÚclient_dictÚ
start_dateÚend_dateÚresultsr   Ú	min_valueÚ	max_valueÚ	avg_valueÚpercentage_changeÚtotal_results2r/   r0   ÚxÚdocs                       r   ÚrunzGoogleTrendsAPIWrapper.run:   sþ  € äœy¨$×*;Ñ*;Ó<ˆà%Ø&×7Ñ7Ó9Øñ
ˆð  ˆØ×(Ñ(¨Ó0ˆØ—o‘oÓ'ˆð $ {Ñ2ð Ð,Ñ-¨oÒ>àð 	ñ Ø3à" 1Ñ% fÑ-×3Ñ3Ó5ˆ
Ø  Ñ$ VÑ,×2Ñ2Ó4ˆáKXó
ÙKXÀˆG�K‰K˜Ó! !Ñ$×(Ñ(Ð):Õ;È=ð 	ð 
ô ˜“Kˆ	Ü˜“Kˆ	Ü˜“K¤# f£+Ñ-ˆ	à�B‰Z˜& ™)Ñ#Ø" 1™I¨šNˆv�aŠy°ñ3à˜Q‘i 1’n‰s¨!ñ-ð 	ð &Ø&×7Ñ7Ó9Ø*Øñ	
ˆð ˆØ×(Ñ(¨Ó0ˆØŸ™Ó*×.Ñ.Ð/@À"ÓEˆØˆØˆà6D×6HÑ6HÈÐSUÔ6VÓWÑ6V¨7�'—+‘+˜gÕ&Ð6VˆÐWØ3A×3EÑ3EÀeÈRÔ3PÓQÑ3P¨ˆw�{‰{˜7Õ#Ð3PˆÐQð �e�Wð Ø$ Q™-˜¨¨*°Q©-¨¸¸:Àb¹>Ð:Jð KØ  ™�} A h¨q¡k ]°!°H¸R±L°>ð BØ#˜ð %Ø#˜ð %Ø'˜[ð )Ü"Ð#4Ó5¸Ñ;Ð<ð =Ø!ŸY™Y¹Ó'?¹°1¬¨A­¸Ñ'?Ó@ÐAð B'Ø'+§y¡y°Ó'8Ð&9ð :$Ø$(§I¡I¨c£NÐ#3ð	5ð
ˆð �{‰{˜3ÓÐùòS
ùò2 XùÚQùò (@s   Â*IÅ4I!Æ"I&ÈI+6)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   r   r
   Úmodel_configr   Úclassmethodr   r   r<   rN   © ó    r   r   r   	   su   … ñð& #Ð˜Ó"Ø(,€L�(˜9Ñ%Ó,áØô€Lñ ˜(Ô#Øð¨$ð °3ò ó ó $ðð(@ ˜ð @  ô @ rW   r   N)rR   Útypingr   r   r   r   Úlangchain_core.utilsr   r   Úpydanticr	   r
   r   r   r   rV   rW   r   Ú<module>r[      s%   ðÙ ,ç ,Ó ,ç Lß FÓ Fôq ˜Yõ q rW   