PyWeather (2017-2019)

TL;DR: I made a weather checking tool in Python that used the Wunderground API. It managed to be my first major project where I learned a lot about software development, QA, versioning, issue tracking, etc.

PyWeather was my second major Python project. Following on the heels of PyTerm – I was excited to learn new stuff, and have some fun.

The concept of PyWeather was simple – checking the weather in Python. After some early development fumbles, I settled in on using the Wunderground API for weather data, and it all went from there.

I would continue working on PyWeather – but Wunderground decided to kill their API in February 2019. I did have ambitions to try and rig up PyWeather to use Dark Sky in early 2019, but these ambitions quickly died. Rigging up a 2-year-old program with 10k lines of code (in varying code styles – I learned a lot of useful Python tricks as I developed PyWeather) to use a new API is not easy.


Regardless, PyWeather was a monumental project to work on. With a codebase of about 15,000 lines, and 25 releases, I taught myself a lot with working on PyWeather. Namely, working with APIs (and error checking), reading configuration files, setting up static APIs for updater use, doing QA on software, among other things. It was a monumental leap in my development career, and a project that I’ll always remember and be proud of. It also gained some traction on GitHub, with a few forks and 30 stars before moving to GitLab.

PyWeather not only checked the weather – it also had a lot of features behind it. Some of these features included a caching system, radar viewer through a GUI, automatic updater (although it did take a lot of work to perfect it), a much too long setup script, and lots more. I’d be here for hours describing the level of customization that I built into PyWeather – it was truly insane.


PyWeather in reality stopped working sometime between March and April 2019, as Wunderground was pretty slow when it came to shutting down their API. Below is the last known screenshot of PyWeather in action, taken on March 2, 2019:


Before the Wunderground API shut down, I wanted to document all the versions of PyWeather in action, through a project called the PyWeather Archives. You can currently visit for Asciinemas of every version of PyWeather in action.

I recorded videos alongside the Asciinemas, especially since later versions of PyWeather included the radar GUI. Right now, these videos are unlisted on YouTube, and I hope to get them up and running on the PyWeather archives soon.


Code is available here:

At the bottom of this page before I updated it in April 2020, there was a sweet little memorial to the project. When the Wunderground API went down, I was genuinely sad that the project was coming to an end – especially after I worked on it for 2 years.

I removed it as it as I’ve been able to move on from PyWeather. It doesn’t reflect my current mentality towards this project – which is now remembering the happy days, and using it for inspiration for future projects.

PyWeather was a monumental step on the way to some more major projects of mine – and I’m happy that I was able to move on from PyWeather for bigger and more complex projects. However, I’ll always remember it fondly as it had a big impact on my life.