Skip to main content

A Rich-powered weather dashboard CLI using WeatherAPI.com, with favorites and interactive mode.

Project description

🌤️ Weather Dashboard CLI

A Python command-line weather dashboard built with Typer and Rich. Fetch current weather and forecasts, manage favorite cities, and explore weather data via an interactive CLI.

✨ Features

  • 🌤️ Current weather for any city
  • ⭐ Manage favorite cities (add, list, remove, clear)
  • 🧭 Interactive menu-based mode
  • 🌡️ Celsius / Fahrenheit support
  • 📊 Rich-formatted terminal output
  • ⚠️ Basic weather alerts (rain, etc.)

📦 Installation (from PyPI)

Using pip

pip install weather-dashboard-jl

Using uvx (no project needed)

uvx --from weather-dashboard-jl weather --help

🔑 API Key Setup

This CLI uses WeatherAPI.com.

1) Get an API key

Create an account and generate a key at: https://www.weatherapi.com/

2) Set the environment variable

macOS / Linux

export WEATHER_API_KEY="YOUR_API_KEY"

Windows (PowerShell)

$env:WEATHER_API_KEY="YOUR_API_KEY"

🧪 Development Setup

git clone https://github.com/<your-username>/weather-dashboard.git
cd weather-dashboard
uv sync

🚀 Usage

Help

weather --help

Current weather

weather current Singapore
weather current "New York" --units f

Interactive mode

weather interactive

Favorites

weather fav add London
weather fav list
weather fav remove London
weather fav clear

📁 Project Structure

weather_dashboard/
├── cli_weather.py        # Typer CLI commands
├── client.py             # WeatherAPI HTTP client
├── conditions.py         # Weather condition mappings
├── models.py             # View models
├── ui.py                 # Rich UI helpers
├── weather_service.py    # Domain logic
├── favorites.py          # Favorites persistence
├── units.py              # Unit handling (C/F)
├── alerts.py             # Alert logic
└── data/
    └── weather_conditions.json

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weather_dashboard_jl-0.1.3.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weather_dashboard_jl-0.1.3-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file weather_dashboard_jl-0.1.3.tar.gz.

File metadata

  • Download URL: weather_dashboard_jl-0.1.3.tar.gz
  • Upload date:
  • Size: 39.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for weather_dashboard_jl-0.1.3.tar.gz
Algorithm Hash digest
SHA256 753e46fad3b646652ccf2b14ea7ef20a74dcfdbbc5e87ebfa249fcecf91e3ae4
MD5 576465bfb5742961d1acc3466f4bc295
BLAKE2b-256 9e68caeae8c298b170859e4761010d1518ae90f9e111e1c1c054e389e245792f

See more details on using hashes here.

File details

Details for the file weather_dashboard_jl-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: weather_dashboard_jl-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for weather_dashboard_jl-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 aa520db29ab0ea2d15d1d3d3d6bfa393ddb29c59e2f6eda3be78796987e75561
MD5 04f091d5604ca89f09ba5e90b773c419
BLAKE2b-256 50019e8ba16f51850dd44c62ec513e3d73b1c07d474a4ce69cf125b7d309640a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page