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).
Latest commit 2fa250a Jul 13, 2011 @ip2k test
Failed to load latest commit information.


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