sopel-weather
A weather lookup plugin for Sopel IRC bots.
Note: This package was previously published as
sopel-modules.weather. Please update your dependencies to usesopel-weatherinstead.
Installation
pip install sopel-weather
Quick Start
Configure the plugin using:
sopel configure --plugins
Or manually edit ~/.sopel/default.cfg:
[weather]
geocoords_provider = locationiq_us
geocoords_api_key = YOUR_LOCATIONIQ_API_KEY
weather_provider = openmeteo
weather_api_key = dummy
Weather Providers
| Provider | API Key Required | Free Tier | UV Index | Features |
|---|---|---|---|---|
| Open-Meteo | No (use "dummy") | Unlimited | No | Best for basic weather, no signup needed |
| Tomorrow.io | Yes | 500 calls/day | Yes | Modern API, good accuracy |
| Pirate Weather | Yes | 20,000 calls/month | Yes | Dark Sky replacement |
| OpenWeatherMap | Yes | 1,000 calls/day | Yes | Popular, well-documented |
Open-Meteo (Recommended for simplicity)
No API key required. Use any string (e.g., "dummy") for the weather_api_key.
[weather]
weather_provider = openmeteo
weather_api_key = dummy
- Website: https://open-meteo.com/
- Free for non-commercial use
- No signup required
Tomorrow.io
Sign up at https://www.tomorrow.io/ for a free API key.
[weather]
weather_provider = tomorrow
weather_api_key = YOUR_TOMORROW_API_KEY
- Free tier: 500 API calls/day
- Includes UV index
- Modern REST API
Pirate Weather
Sign up at https://pirateweather.net/ for a free API key.
[weather]
weather_provider = pirateweather
weather_api_key = YOUR_PIRATEWEATHER_API_KEY
- Free tier: 20,000 API calls/month
- Drop-in Dark Sky API replacement
- Includes UV index
OpenWeatherMap
Sign up at https://openweathermap.org/ for a free API key.
[weather]
weather_provider = openweathermap
weather_api_key = YOUR_OPENWEATHERMAP_API_KEY
- Free tier: 1,000 API calls/day
- Includes UV index
Geocoding Provider
A geocoding provider is required to convert location names (like "Seattle" or "90210") to coordinates.
LocationIQ (Required)
Sign up at https://locationiq.com/ for a free API key.
[weather]
geocoords_provider = locationiq_us
geocoords_api_key = YOUR_LOCATIONIQ_API_KEY
Options:
locationiq_us- US-based servers (recommended for North America)locationiq_eu- EU-based servers (recommended for Europe)
Free tier: 5,000 requests/day
Configuration Options
| Option | Description | Default |
|---|---|---|
geocoords_provider |
Geocoding provider (locationiq_us, locationiq_eu) |
locationiq_us |
geocoords_api_key |
API key for geocoding provider | Required |
weather_provider |
Weather provider (openmeteo, tomorrow, pirateweather, openweathermap) |
Required |
weather_api_key |
API key for weather provider | Required |
sunrise_sunset |
Show sunrise/sunset times | False |
nick_lookup |
Allow looking up weather by IRC nickname | True |
Example Configuration
[weather]
geocoords_provider = locationiq_us
geocoords_api_key = pk.abc123...
weather_provider = tomorrow
weather_api_key = abc123xyz...
sunrise_sunset = True
nick_lookup = True
Commands
Current Weather
.weather # Uses your saved location
.weather seattle
.weather Seattle, US
.weather 90210
Example output:
Seattle, Washington, US: 12°C (54°F), Partly Cloudy, Humidity: 75%, UV Index: 2, Gentle breeze: 19km/h (12mph) (↑)
Forecast
.forecast # Uses your saved location
.forecast seattle
.forecast London, UK
Example output:
Seattle, WA, US :: Monday - Partly Cloudy - 12°C (54°F) / 5°C (41°F) :: Tuesday - Rain - 14°C (57°F) / 6°C (43°F) ...
Set Your Location
.setlocation seattle
.setlocation 98101
.setlocation London, UK
Troubleshooting
"Weather API key missing"
Set weather_api_key in your configuration. For Open-Meteo, use any string like "dummy".
"GeoCoords API key missing"
Sign up at https://locationiq.com/ and add your API key to geocoords_api_key.
"Could not geocode location"
- Check your LocationIQ API key is valid
- Try a more specific location (e.g., "Seattle, WA" instead of "Seattle")
- Check LocationIQ rate limits (5,000/day on free tier)
"Error: Invalid API key"
Verify your weather provider API key is correct and active.
UV Index not showing
UV Index is only available with Tomorrow.io, Pirate Weather, and OpenWeatherMap providers.
Requirements
- Sopel 8.0+
- Python 3.8+
License
Eiffel Forum License 2
Metadata
Release files for sopel-weather 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| sopel_weather-2.1.0.tar.gz | 14.5 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sopel_weather-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.5 kB
Release files / sopel_weather-2.1.0.tar.gz
| Download URL | sopel_weather-2.1.0.tar.gz |
|---|---|
| Size | 14.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9fc43c9c1a81f969d6e0ef9282ad305c541d8bda5a526db93877fc0b42776250
|
|
BLAKE2b-256 checksum How to use checksums |
50132fea5892e736d30ddaf062511642a8f57956fada441f98f8b4fef7da51f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 31, 2026.
Transparency logRelease files / sopel_weather-2.1.0-py3-none-any.whl
| Download URL | sopel_weather-2.1.0-py3-none-any.whl |
|---|---|
| Size | 13.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9cd91e2dfade3f921c81513ceb248bbc54e8b695ec0d34fddc22fb9ad86824e8
|
|
BLAKE2b-256 checksum How to use checksums |
dc1cbcf45d0e7254a4dc17ac721ec135644a5360252b3c008579d90dd88e0b61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 31, 2026.
Transparency logSecurity for sopel-weather 2.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for sopel_weather-2.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.