Is this really happening? A new PyWeather release? I'm afraid it's happening, PyWeather 0.6.3 beta is here! Featuring more bug fixes than features...again...and more awful jokes in the release notes! After being delayed by 3 days and almost being on time, let's jump right in to the new features.
- Hurricane data was nice to have in PyWeather, but actually knowing where those hurricanes were...was confusing. No one actually knows where latitude and longitude coordinates correspond to. Fear not! I've added a new feature that lets you see the nearest city to where a hurricane is, up to 300km away. This uses a new API (Geonames), and you can easily disable this feature (it's off by default) in the event you don't want to use this feature. Just note, this will increase loading times for hurricane data, and you can also configure if you just want this data on the summary screen for a hurricane, or on hourly data too.
- API key validation happens earlier in the boot-up process. Is this really a feature?
- Remember the old progress bar? It was a hacked up and horribly looking progress bar, but fear not! Thanks to the halo library, I've added in support for a much, much better progress indicator in PyWeather! In addition, this new progress indicator shows up in places where the old one didn't (e.g. refreshing weather data).
- Yesterday's weather got a nice overhaul (thanks in part to @ModoUnreal for getting some code in!), and now you can see the weather that occurred yesterday on the summary screen of PyWeather, if you completely feel like it. Yesterday's weather also has a caching system set to 12 hours by default, in the event you leave PyWeather running overnight.
- A much needed feature has been added to PyWeather, and that's the ability to quickly see the weather for your current location! This uses a separate API (FreeGeoIP), and might be blocked if you use a DNS-based adblocker (e.g. Pi-Hole). The location provided is solely based on your IP-based location, and will be accurate to about ~20mi on most cable/DSL/Fiber/Fibre connections. On wireless internet (LTE) connections, this might be wildly inaccurate, so take note. This feature can be easily disabled, if you want to forego it all together (it's disabled by default to preserve your privacy), but can be called up by using
curloc
orcurrentlocation
at the input menu. - Wunderground PWS owners, rejoice! You can now view PWS data in PyWeather, and it's on by default! Entering
pws:<PWS ID>
at the startup screen, where<PWS ID>
is your (or another) PWS ID will show the weather for said PWS. Sadly, you can't view historical weather data for PWSes just yet (major API issues prevented this from occurring), but this will be available in 0.6.4 beta. - Favorite locations has been added to PyWeather! You can now store 5 favorite locations, and you can easily call them up at the input menu with
favloc:1
orfavoritelocation:1
, and so on and so forth. There's a management option as well, that lets you easily add, edit, and remove favorite locations as you wish. - If you're tired of those pesky geocoder API rate limits, fear not! You can now define a custom Google geocoder API key. Do note that if your OS doesn't support an https scheme with the geocoder, you won't be able to use a custom geocoder key.
- Much better error catching for the configuration file has been added (thanks to @theletterandrew for coding this in!). Configuration options are now tried one by one (instead of a huge try block), and will tell you exactly which configuration option(s) are having trouble getting loaded.
- You can now view the precipitation chance on the forecast page! Woo hoo!
- Extra tools have been added to PyWeather, and the first extra tool to come along is cache timings for all the different data types in PyWeather. With the enabling of a config option, you can access the extra tool, and see exactly how long each data type has been sitting around for, and the cache limit, along with if the cache is enabled or disabled. Extra tools coming down the line might include showing all variables, etc.
- The ability to show pressure and visibility data on historical hourly and yesterday hourly data has now been added.
- Minor UI changes
Of course, there were some bugs in PyWeather, and you bet these all got fixed.
- Fixed multiple major bugs regarding invalid data on historical summary and historical hourly data. This included PyWeather not detecting errors in the data.
- Fixed more major bugs regarding more invalid data on yesterday's summary and yesterday's hourly data. Same as above, lots of invalid data types!
- Fixed a bug where if you didn't have API key validation on, PyWeather would validate your API key, and vice versa.
- Fixed a bug where sometimes PyWeather wouldn't show precipitation data on the forecast. I fixed this by adding a new algorithm to properly show all precip data possible.
- Fixed a bug where if you flagged all data types to refresh, hurricane data wouldn't refresh.
- Fixed a bug where if the summary section couldn't be added in the setup script, the print statement indicated that the cache section couldn't be added.
- Fixed a bug where PyWeather wouldn't catch bad data for visibility, UV index, and humidity for the current weather.
- Fixed a minor bug where on yesterday's weather hourly data, the degree symbol was placed too far right by 1 character.
- Fixed a potential bug (mainly for PWSes, anyways) where missing data on yesterday's weather could cause a crash.
- Fixed a potential bug where if almanac data is prefetched, it wouldn't display when viewing it in detail, and PyWeather crashed when doing such.
- Fixed a bug where on historical hourly data, the total precipitation data in mm had a "mb" label. Today, we'll see about 25 mb of precipit...wait...that isn't right!
- Fixed a minor bug where in historical hourly data, the loop wouldn't automatically break on the last iteration.
- Fixed a bug where the configsetup script set the default geocoder scheme to https, which caused issues on platforms that don't support HTTPS as the geocoder scheme.
In addition, these other changes occurred during the development of PyWeather 0.6.3 beta:
- The git updater has been entirely removed from this version of PyWeather, due to how unreliable it is. A new, universal updater based on downloading a .zip file and unpacking it will be coming in 0.6.4 beta. Because of this, when you update from PyWeather 0.6.3 beta to 0.6.4 beta, you'll have to manually unpack the .zip file from the releases tab or the PyWeather Updater.
- The configupdate script will now only catch a bad section error when attempting to add sections (it's not a bare except)
And for the first time in PyWeather history, known issues! I didn't have enough time to patch these up, and decided on releasing PyWeather 0.6.3 beta first before patching these up. Comprehensive fixes for all of these issues will be implemented into PyWeather 0.6.4 beta.
- It's now known that Wunderground will sometimes have completely empty tide data for a city, and I'm working on a fix for 0.6.4 beta. I'll also contact Wunderground about this issue.
- Attempting to exit out of the input when attempting to view historical weather is not the easiest thing to do, and doing Ctrl+C will completely exit out of PyWeather. I'll be fixing this in 0.6.4 beta.
- It's now known that when viewing hurricane data, storms will appear twice. I've already contacted Wunderground about this issue, and they haven't responded back. I'll be implementing a fix into 0.6.4 beta.
- A custom geocoder key won't work without your geocoder scheme being HTTPS. A temporary fix has been added to 0.6.3 beta, and a full fix will be coming to 0.6.4 beta, which will cover the setup script.
- The configsetup script, as mentioned above, will default to HTTP as it's default scheme. I'll be adding a fix in 0.6.4 beta which will detect what scheme your OS can use. It's the same code that's used in the setup file.
Man, at this point I should write a novel about Wunderground's API.
That's all for this release of PyWeather. PyWeather 0.6.4 beta should be released in late February/early March 2017, as midterms will plow right through my development schedule, so it'll be a 90-day release. However, 0.6.4 beta will be the first release with release candidates, and you can read up on this information in the wiki. I can't wait to start working on 0.6.4 beta, and it'll include refinements for 0.6.3 beta's features, along with seeing the weather for airports and Mars, previous locations, historical weather for PWSes, UI improvements, and the universal updater.
Of course, the obligatory update instructions:
This version of PyWeather requires a new library, halo
. The config update script can automatically do this for you, and even if you want to install it yourself (or if the automatic install fails), the config update script will still write all the new config updates necessary for 0.6.3 beta.
PyWeather 0.6 beta and above to 0.6.3 beta:
Download the .zip from the releases tab, overwrite all files, and run configupdate.py.
Got Git (and a command line)?
cd pyweather (or wherever PyWeather is stored)
git fetch
git stash
git checkout 0.6.3-beta
python3 configupdate.py
pip3 install halo (If the auto install failed, or you want to do it yourself)
PyWeather 0.5.2.1 beta and below to 0.6.3 beta:
Entirely remove your PyWeather folder, while making sure to backup your API key. Download PyWeather, unzip it, and run the setup script.
In a command line (and have git?)
cd pyweather (wherever it is)
echo storage/apikey.txt (copy this down somewhere safe)
cd ..
rm -rf pyweather (wherever it is)
git clone https://github.com/o355/pyweather.git ./pyweather (or to wherever you want it to be)
cd pyweather (wherever the directory that you put it in is)
python3 setup.py
That's all for this release of PyWeather. If you haven't already, consider subscribing to PyWeather's Weekly Update, a weekly newsletter that most of the time gets published on Saturdays. You'll get the latest happenings that occur in the PyWeather "world", per say.
Checksums:
MD5: db0187ca47b45e3ce3927be8ce744b6e
SHA-1: 40bf6fa394bcab18acd99fd6e253427ddb2686ef
SHA-256: 82a327c3938651b2a1575b101251731aa58f611f577cf7ca3367e9bff65a0eb3
Enjoy PyWeather 0.6.3 beta, and happy holidays!
o355