Skip to content

A free and asynchronous weather API wrapper made in python, for python.

License

Notifications You must be signed in to change notification settings

null8626/python-weather

Folders and files

NameName
Last commit message
Last commit date

Latest commit

afeac58 · Apr 28, 2025
Feb 15, 2025
Mar 10, 2025
Apr 28, 2025
Oct 28, 2024
Oct 28, 2024
Feb 15, 2025
Feb 15, 2025
Oct 28, 2024
Mar 6, 2025
Mar 6, 2025
Apr 28, 2025
Mar 10, 2025
Mar 6, 2025

Repository files navigation

A free and asynchronous weather Python API wrapper made in Python, for Python.

Getting started

Run the following command in your terminal:

$ pip install python-weather

Example

For more information, please read the documentation.

# Import the module.
import python_weather

import asyncio
import os


async def main() -> None:
  
  # Declare the client. The measuring unit used defaults to the metric system (celcius, km/h, etc.)
  async with python_weather.Client(unit=python_weather.IMPERIAL) as client:
    
    # Fetch a weather forecast from a city.
    weather = await client.get('New York')
    
    # Fetch the temperature for today.
    print(weather.temperature)
    
    # Fetch weather forecast for upcoming days.
    for daily in weather:
      print(daily)
    
      # Each daily forecast has their own hourly forecasts.
      for hourly in daily:
        print(f' --> {hourly!r}')

if __name__ == '__main__':
  
  # See https://stackoverflow.com/questions/45600579/asyncio-event-loop-is-closed-when-getting-loop
  # for more details.
  if os.name == 'nt':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
  
  asyncio.run(main())

Data source

This library depends on wttr.in, which uses data from the World Weather Online API.

Donations

If you want to support this project, consider donating! ❤

ko-fi