
    Ng                    v    d Z ddlmZ ddlmZ ddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ  G d d	e          Zd
S )z=Simple reader that reads weather data from OpenWeatherMap API    )annotations)datetime)IteratorOptionalSequence)Document)
BaseLoaderOpenWeatherMapAPIWrapperc                  J     e Zd ZdZd fdZed	d
dd            ZddZ xZS )WeatherDataLoaderzLoad weather data with `Open Weather Map` API.

    Reads the forecast & current weather of any location using OpenWeatherMap's free
    API. Checkout 'https://openweathermap.org/appid' for more on how to generate a free
    OpenWeatherMap API.
    clientr   placesSequence[str]returnNonec                d    t                                                       || _        || _        dS )zInitialize with parameters.N)super__init__r   r   )selfr   r   	__class__s      h/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/document_loaders/weather.pyr   zWeatherDataLoader.__init__   s-     	    Nopenweathermap_api_keyr   Optional[str]c               :    t          |          } | ||          S )Nr   r
   )clsr   r   r   s       r   from_paramszWeatherDataLoader.from_params    s'     *AWXXXs66"""r   Iterator[Document]c              #     K   | j         D ]D}dt          j                    i}| j                            |          }t          ||          V  EdS )z1Lazily load weather data for the given locations.
queried_at)page_contentmetadataN)r   r   nowr   runr   )r   placer$   contents       r   	lazy_loadzWeatherDataLoader.lazy_load'   sf       [ 	D 	DE$hlnn5Hkooe,,G(CCCCCCC	D 	Dr   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r    )	__name__
__module____qualname____doc__r   classmethodr   r)   __classcell__)r   s   @r   r   r      s               OS# # # # # [#D D D D D D D Dr   r   N)r-   
__future__r   r   typingr   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser	   ,langchain_community.utilities.openweathermapr   r    r   r   <module>r6      s    C C " " " " " "       / / / / / / / / / / - - - - - - @ @ @ @ @ @ Q Q Q Q Q Q D  D  D  D  D
  D  D  D  D  Dr   