Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Simple Python for accessing the Wunderground API and getting forecast data (and more!) right from your favorite shell. Now on pypi as well! http://pypi.python.org/pypi/pycliweather . Check the 'webapp' branch out if you're looking for this as a simple Flask webapp (not finished yet but it works).

branch: master
README.txt
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



Something went wrong with that request. Please try again.