Simple Python for accessing the Wunderground API and getting forecast data (and more!) right from your favorite shell. Now on pypi as well! . Check the 'webapp' branch out if you're looking for this as a simple Flask webapp (not finished yet but it works).
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
MANIFEST Added main definition so it should work on Windows. Turned project in… Jul 13, 2011


The problem: I want to look up the weather from wunderground from my terminal without opening up a web browser. I figured "hey, this should be easy / fun to do using Python!" -- WRONG! XML is always a pain to work with, and there is no *easy* way to get XML schema into a dict. Most people don't even use XML correctly; you should use JSON if you just have strings inside of XML tags and nothing more. Every API I've ever seen / worked with uses XML in this way, and so they could all replace it with the *much* easier to parse JSON.

Update: You can now pass in the location as the first argument to the script. 

Update 2: You can use *any* location search format that wunderground supports; this includes zipcode, airport code, city name and state, etc.
If Wunderground returns valid XML for your query, pycliweather will parse it; the searches are limited only by the Wunderground API.

In the example below, I'm using 'dallas texas'. There is also a default specified in the code should a location not be passed.

Anyway, here is what should come out when you run this:

likwid@helios pycliweather(master)$ weather dallas texas
Location: dallas+texas
Sunrise: 6:18
Sunset: 20:37
Moon visible: 95% 

Friday - Partly Cloudy - 79F to 99F - 0% chance of rain
Saturday - Partly Cloudy - 79F to 104F - 10% chance of rain
Sunday - Partly Cloudy - 79F to 101F - 10% chance of rain
Monday - Partly Cloudy - 77F to 99F - 10% chance of rain
Tuesday - Chance of a Thunderstorm - 77F to 95F - 20% chance of rain
Wednesday - Chance of a Thunderstorm - 76F to 92F - 30% chance of rain