
    7|h                    n    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y
)z=Simple reader that reads weather data from OpenWeatherMap API    )annotations)datetime)IteratorOptionalSequence)Document)
BaseLoaderOpenWeatherMapAPIWrapperc                  ^     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.
    c                >    t         |           || _        || _        y)zInitialize with parameters.N)super__init__clientplaces)selfr   r   	__class__s      k/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/document_loaders/weather.pyr   zWeatherDataLoader.__init__   s     	    Nopenweathermap_api_keyc               ,    t        |      } | ||      S )Nr   r
   )clsr   r   r   s       r   from_paramszWeatherDataLoader.from_params    s     *AWX66""r   c              #     K   | j                   D ]B  }dt        j                         i}| j                  j	                  |      }t        ||       D yw)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'   sL      [[ 	DE$hlln5Hkkooe,G(CC	Ds   AA)r   r   r   Sequence[str]returnNone)r   r%   r   zOptional[str]r&   r   )r&   zIterator[Document])	__name__
__module____qualname____doc__r   classmethodr   r$   __classcell__)r   s   @r   r   r      sg    (  
	 OS#"#?L#	# #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>r4      s+    C "  / / - @ Q D
  Dr   