Releases: o355/PyWeather
PyWeather 0.6.3 beta
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 a...
PyWeather 0.6.2 beta
The moment you've been waiting for! PyWeather 0.6.2 beta. Featuring more awful jokes and more bug fixes than features.
Before I list all changes, this will be the last update that includes new data types. I don't really see calling webcam images a data type (if I decide to implement this feature), but that's beside the point. From here on out, cool features are coming to PyWeather, so sorry if this release is a little boring. Anywhom, let's get to the changelog!
New features (and removals):
- Ever wondered what the weather was yesterday? Forgot to go outside? Fear no more! Yesterday's weather has been added, thanks to @ModoUnreal. Truly a life-changing feature.
- Hurricane data has now been added to PyWeather, so that's cool.
- Ever wondered when high tide will occur? PyWeather can help you answer that question. Oh, right, tide data has been added, and you can view it on your summary screen! (Quick note, for cities on the ocean, you might not be able to view low/high tide data. I had an issue with NYC not showing low/high tides.)
- You can now separately configure 36-hour and 10-day hourly cache times. Please note, the 36-hour cache option may be confused with 3-day in the code. Thanks again to @ModoUnreal for coding this in!
- You know that pesky geocoder fiasco from 0.6.1 beta? That's gone. PyWeather Setup will now automagically detect which scheme you can use, and the same goes for when you update to 0.6.2 beta.
- No one asked, and I delivered! You can now enter non-whole numbers for cache times in the setup file!
- In the sad event that your version identifier file is missing, you can now manually define the version you're upgrading to in the configupdater script.
- I added messages for up-to-date and no matching version messages in the configupdate script. Please be proud.
- Another script has sadly passed away (deleted), the configdefault script. The script really isn't needed, as the configsetup script does the same thing!
- Minor UI changes.
Now, thanks to the brand new, anti-critical bug QA process, there are indeed more bug fixes than features. Who cares! Stability > New stuff.
Bug fixes:
- Fixed a critical bug where if geopy wasn't installed before setup, PyWeather Setup would install geocoder INSTEAD of geopy, and throw an error. My bad, my bad.
- Fixed a bug where radar cache variables weren't globalized in the function. Sad! Wait, no, Tracebacks that didn't crash PyWeather!
- Fixed a bug where if your config file failed to load, cache times were set insanely low. Who forgot to multiply cache times by 60? This guy! Maybe some people enjoyed having alert data getting refreshed every 5 seconds.
- Fixed a bug where basically the key backup portion of the setup file didn't work at all! In addition, I also fixed a bug where if you entered nothing, PyWeather Setup throw an error (thanks to @creepersbane for reporting the issue!)
- Fixed a bug where if your config file failed to load, enter to continue prompts were disabled. That's no fun when looking at 10-day hourly forecasts!
- Fixed a bug where at the bypassing radar confirmation section of setup, if you entered "yes" or "no" PyWeather Setup would crash. Entering nothing would not trigger the bug.
- Fixed a bug where you weren't able to exit the summary screen of historical data. That's no fun being forced to look at 6 iterations of hourly data!
- Fixed a bug where wind chill data in Celsius in historical hourly data was displayed with the unit "kph". Folks, the wind chill on January 5, 2016 in our town was 25 kph. Wait, what? That's not right!
- Fixed a bug where the 10 day forecast cache time was accidentally running off of the hourly cache time. Oops!
- Fixed a bug where if there was no moonrise data, PyWeather didn't catch the lack of data, and a crash occurred. Proper data validation has been added to sunrise, sunset, moonrise, and moonset data as a matter of a fact.
- Fixed a bug where if you set alerts data not to be prefetched at boot, when you viewed detailed alerts data, PyWeather would crash.
- Fixed a bug where if you had 10-day hourly prefetch enabled at boot, when you wanted to quickly view detailed 10-day hourly information PyWeather would crash. That's ironic!
- Fixed a potential bug where the configupdate script might not work at all (especially if you manually updated your version identifier file yourself). I changed the code to now look for a version number, instead of an exact match.
- Fixed an odd bug where yesterday precipitation data could say "T in". I made sure the "T" won't appear again (a.k.a added a data check)
- Fixed a bug where if some (or all) almanac data wasn't available, PyWeather would crash. This also relates to fixing an issue where PyWeather wouldn't catch a blank data value for normal high/normal low in the almanac. Thanks to @ModoUnreal for reporting this!
- Fixed a "bug" where if you didn't have a connection to raw.githubusercontent.com (or didn't have an internet connection at all) with the updater enabled, PyWeather wouldn't work. This was intentional code added a while ago, but I guess I didn't see DNS blocking of the domain in sight. Thanks to @creepersbane for reporting the issue!
Other changes:
- @ModoUnreal is now an awesome contributor!
- The setup file will now forcefully write out a new version identifier file when run.
There you have it, PyWeather 0.6.2 beta. A special thanks to @ModoUnreal for some amazing contributions to this version of PyWeather!
Updating PyWeather
It isn't a PyWeather update without a broken updater! Anyways, the built-in updater will complete everything, but fails on the final print statement on most platforms. Enter "No", then exit PyWeather afterwards. This will be fixed, but you'll have to deal with this once 0.6.3 beta comes out.
Remember when I forgot to gitignore the versioninfo.txt file last version? That also does the domino effect here. When you update to PyWeather 0.6.2 beta, you'll need to manually input "2" in the configupdate file if you come from PyWeather 0.6.1 beta (non-https or https), and "1" if you come from PyWeather 0.6 or 0.6.0.1 beta.
Anyways, here's how to update (0.6 beta and above)
Without git, download the release below, drag all files into your PyWeather folder (allow the overwrite!), and run configupdate.py. Make sure you enter "1" or "2" depending on which version you're updating from.
Git users:
git fetch
git stash - Do this even if you haven't made any changes, better be safe than sorry!
git checkout 0.6.2-beta
Run configupdate.py afterwards.
If you come from PyWeather 0.5.2.1 beta and earlier, you'll need to reinstall PyWeather, so follow the instructions on the front page.
The built-in updater should work, you'll still need to enter "1" or "2" depending on which version you're updating from.
Updates on PyWeather
First off, I'm back in school (ugh), but I have a study coding hall, so hurray! I've also been working on other projects, so that contributes to the long wait between releases.
Starting with this version, I'm doing an extensive QA on each new version of PyWeather, on multiple platforms, in different ways. This is partially why 1/2 the commits are bug fixes, and why the delay between releases went up too.
Wondering about me? I'm doing great! I managed to do a rescue mission to save my Kerbals on Duna. Anyone got tips on an Eve rescue mission? How much Delta-V do I need?
In other news, PyWeather 0.6.3 beta will start development this week, with lots of awesome, new features. Basically, stuff I actually want to work on. PyWeather 0.6.2 beta is indeed the last release with new data types. It's a little sad, but the initial objective of PyWeather has been completed. I seriously can't wait to start working on new stuff!
And there we have it, PyWeather 0.6.2 beta. It might be a boring release, but I promise to quickly release PyWeather 0.6.3 beta. I'm considering doing RCs for 0.6.3 beta, but that doesn't make sense, it's a release candidate for all I care. Maybe something like PyWeather 0.6.3 beta^2 1
?
See you all later in the year!
Also, this is the first non-pre-release release of PyWeather. I feel as if it's deserving thanks to the large QA process.
PyWeather 0.6.1 beta (HTTPS enabled)
Hi folks! As promised, I'm releasing the HTTPS-enabled build of PyWeather.
All this does is change geopy's scheme to request geocoder through HTTPS. That's it. Along with version information.
If you'd like to update to 0.6.1-beta-https from anything BUT 0.6.1 beta, update to 0.6.1 beta. Afterwards, or if you're running 0.6.1 beta, follow the instructions below.
You cannot use Git to update to 0.6.1-beta-https. I did not push the commits onto GitHub, and have no intent to do so. Due to the way that PyWeather's updater functions, I will not be modifying the updater JSON file to the HTTPS version.
In a command line:
cd <pyweather's working directory>
wget (or curl) https://github.com/o355/pyweather/releases/download/0.6.1-beta-https/pyweather-0.6.1beta-https.zip
unzip pyweather-0.6.1beta-https.zip
cp pyweather-0.6.1beta-https/pyweather.py ./pyweather.py
Otherwise, download the release below, and replace pyweather.py
.
PyWeather 0.6.2 beta will come out soon, with the option to configure the scheme that will be used with geopy.
PyWeather 0.6.1 beta
Please note: Due to a HTTPS fiasco with geopy, if you're running Mac OS X, or another OS that won't allow geopy (the geocoder) to make requests in HTTPS, you will run into a geocoder issue during setup. This is normal. For the other 95% of users not using those OSes, please update to the HTTPS enabled build, if you so desire.
So, here's the deal. I had the release notes ready to go, but after letting the tab stay open for 2 hours, I closed it, and the notes weren't saved. Anyways, PyWeather 0.6.1 beta is here, after two months of work. New features? Check. Bugs fixed? Check.
A few notices:
- Termux users: I've been trying to update my phone's copy of PyWeather from 0.6 -> 0.6.1 beta, but it's not working. configupdate.py gets stumped on trying to read the versioninfo.txt file, even though other OSes work perfectly fine. To update, please reinstall PyWeather, and this will be the case each time.
New features (and removals):
- A new caching and refreshing system has been added to PyWeather! After a user-defined amount of time for each data type, that data type will get refreshed when the user views that data again. Confused? Say you checked current data with a cache time of 10 mins, at 12am. If you check current data at 12:01am, it won't refresh, but if you did it at 12:11am, it would show you the latest data. Of course, the cache system can be disabled. Even if you do disable the system, you can manually flag all data types to be reset.
- Geocoder is no longer a dependency, since I found a "reverse geocoder" in Geopy. The good news, loading times have been shortened by ~200ms. Bad news, location titles may be longer.
- Last-resort installs in the setup script have been changed. All libraries feature a last-resort option, but I've added a warning about screwing up your PIP environment from using sudo.
- I've added a radar viewer to PyWeather for those with a GUI. You can view the radar for your location from 6 different zoom levels. Of course, a caching system was also introduced. I'm using appJar for the GUI, however, .gifs are glitched out presently, making it experimental. A confirmation message will appear when trying to launch the radar, making sure you know it's experimental, but you can turn this off.
- Talking about new libraries, appJar and requests have both been added as necessary libraries.
- Error checking has been added to all scripts when importing non-standard libraries when an error occurs.
- A progress indicator has been added to the setup script when configuring options for PyWeather. This should help with the feeling of "when is this gonna end?" during the setup of PyWeather.
- I've decided to yank the chunk of code that validates your API key in the setup file so it runs after your key is saved, and your backup key is saved. If your key is invalid, you can reenter it infinite times. Please use this feature responsibly (aka don't use this to find free API keys)
- You can now update all your PIP packages in the setup script. User approval required.
- Geopy's scheme was changed to HTTP after finding that OS X wasn't working properly with the HTTPS scheme. You will be able to configure the scheme used in a later version. If you absolutely hate having your geocoder requests being in HTTP, I'll be releasing a 0.6.1-beta-https version of PyWeather by August 2, 2017.
- Wind direction was added to historical hourly. The more data, the better!
- The keybackup script has been removed. It already had legacy code, and I wasn't properly updating it. It may make a return, eventually.
- Minor UI changes.
Bug fixes:
- FIxed a major bug where PyWeather's updater wouldn't work. Doing QA on this stuff is tough, without making it look like I released a brand new version of PyWeather.
- Fixed a bug where configsetup's directory checking for a config file wasn't compatible with Windows machines.
- Fixed a bug where if the sun/moon rise/set hour was 0, PyWeather didn't correct it to 12, as in 12 AM.
- Fixed a bug where if you entered in a weird name (e.g. cities with special characters) to check the weather for, PyWeather would crash from an encoding error.
- Fixed a major bug where alerts wouldn't iterate, all thanks to a non-defined variable. Fun fact: This bug was entirely caused by Eclipse's really s***ty code checking. <3 you PyCharm!
- Fixed this super duper tiny bug where a logger.info statement wouldn't print in the setup script unless you didn't have geopy installed.
- Fixed a bug in the setup script, in which if sections that PyWeather uses were already added to a config file, but the CONFIG/configprovisioned flag wasn't there, PyWeather Setup crashed. This was due to a KeyError at the first check, and no error catching when adding sections that PyWeather uses.
- Fixed a bug where custom directories for backing up your API key in the setup script never worked. Rest assured, this is fixed.
- Fixed a bug in which PyWeather didn't have good UI to parse a "Variable" wind direction without annoying the end user. This is fixed, thankfully.
- Fixed many bugs where PyWeather wasn't catching bad historical data, like bad dates, or parsing errors.
Since the updater is broken, again (try at your own risk), here's how to update.
Please note: For some reason, updater/versioninfo.txt DID NOT get gitignored, so it says 0.6.1 beta, causing issues with configupdate.py. When performing steps for 0.6 beta and above, change the text file back to what version you were on.
From PyWeather 0.6 beta and above:
Got Git?
git fetch
git stash
git checkout 0.6.1-beta
<run configupdate.py>
Otherwise, download the latest release, replace all files, and run configupdate.py.
From PyWeather 0.5.2.1 beta and below:
Got Git?
git fetch
git stash
git checkout 0.6.1-beta
<remove storage/config.ini>
<run configsetup.py>
Otherwise, download the latest release, replace all files, delete the config.ini file in the storage folder, and run configupdate.py.
Quick PyWeather update. Two months between 0.6 beta and 0.6.1 beta is a while, I get it. Finals snapped me, and so did summer. I'm doing other stuff, so I don't have all the time in the world to work on PyWeather. PyWeather 0.6.2 beta should include some awesome features, like yesterday's weather that ModoUnreal coded, along with hurricane and tide data, since hurricane season is now.
From there, I want to add even more advanced features, but PyWeather's rapid development is slowly slowing down. But I'm still working on PyWeather, just less. As the grades go up, the time to work on free projects goes down, which makes me sad.
Enjoy PyWeather 0.6.1 beta. I'll be back in hopefully not two months for PyWeather 0.6.2 beta.
PyWeather 0.6.0.1 beta
Another critical bug fix. I'm doing my best on QA checks, but this is a beta after all. 2 critical bugs were found in PyWeather 0.6 beta.
This must be a coincidence. The exact same happened with 0.5.2 beta. I found the bug one day after release, at night, while on Termux. This time, the phones were different. I used my GS7 to find the bug, this time I used my LG G2 to find the bug. Anywhom, here's the changelog.
- Fixes a critical bug where a user couldn't provision their config file when they first downloaded the program.
- Fixes a critical bug where if a user attempted to use the configuration defaults program, the program didn't properly reset their config file.
Updating to 0.6.0.1, and actually any 0.6 beta and beyond is a little different.
If you're updating from 0.6 beta:
Update from source (git, .zip, etc.), and run configupdate.py. This is now critical, it properly updates your config once a new release comes out, so that PyWeather can run properly. There are no config changes in this release, but please keep this in mind for future betas.
If you're updating from 0.5 beta and under:
Update from source, and run configsetup.py.
0.6.1 beta is still scheduled for release in mid-July, and that will now include a file system restructure.
PyWeather 0.6 beta
2 critical bugs was found in PyWeather 0.6 beta, in which new users couldn't properly provision their configuration file, or reset their configuration file. Existing users are not affected by While a workaround to this is using the configsetup.py script, PyWeather 0.6.0.1 beta has been released, and fixed 2 critical bugs. Please update when you can.
Hey! Even though I've been swamped with tests, other projects, and schoolwork, I managed to squeak out a PyWeather release just before things get really busy. Introducing, PyWeather 0.6 beta!
This release is a little unusual, as I mainly focused on under-the-hood changes, and one major feature had to get scrapped for this release. The radar wasn't working properly with the GUI library I wanted to use ("corrupted" .gifs), but it'll be added as an experimental feature in 0.6.1 beta. Anywhom, let's get to the changelog.
- An about page was added to PyWeather
- Alerts got added to PyWeather! You can view severe weather alerts for locations in the US/EU, along with detailed information.
- The option to show release notes in the updater, along with when a new version should come out was added.
- The "menu" is now purely number based. You can't select options with words anymore, but I feel as if it's a bit better this way.
- Support for overriding versions was removed, thanks to a huge update I'll detail later.
- Error catching was added for a bad reverse geolocator fetch.
- Minor UI changes
Before I get to the biggest changes, let's check out some bug fixes.
- Fixed a bug where if your backup API key couldn't be found, key validation was entirely skipped. I guess this was intentional, but now if your primary key is still validate, but if your backup key couldn't be loaded at first boot, it'll stop before trying to validate a non-existent key.
- Fixed a bug where when running configdefault.py, "PYWEATHER BOOT/validateapikey" wasn't reset to it's default value.
- Fixed a bug where if you enabled update checking at boot, PyWeather would crash due to code not getting up-to-date with the requests library (effected 0.5.2 - 0.5.2.1 beta)
- Fixed a bug where in historical hourly information, if you had the iteration counter on, it would print in red.
The biggest change in PyWeather 0.6 beta is how the config works. There have been loads of issues in regards to config updating with Git (and the .zip method, too), so I thought I'd solve the issue.
The config works like this now. The config isn't bundled with PyWeather, it's created in the setup script. All scripts have detection methods to detect if a config is provisioned or not.
When updating PyWeather, things work like this. PyWeather will execute a configupdate.py script, which preserves your present settings, but will let you set up new configuration options available in newer versions. Say from 0.6 -> 0.6.2, 4 new options are available, but from 0.6.1 -> 0.6.2, 2 new options are available.
A file gets created in PyWeather's storage folder called "versioninfo.txt", containing your version info. Depending on what version the configupdate detects, it'll make appropriate changes, like such:
if versioninfo == "0.6 beta":
write 4 config options
elif versioninfo == "0.6.1 beta":
write 2 config options
After that's done, versioninfo.txt gets updated to what version the user is on, and all is happy and well. A true test of this will come in PyWeather 0.6.1 beta.
Otherwise, those are all the major changes in PyWeather 0.6 beta. Updating to this release is different, and will , so follow the instructions below.
If you update with the .zip method, and likely overwrite files:
You'll want to delete config.ini, and then set up your config again by launching the configsetup.py
script in the storage
folder. Configure any additional options, and launch PyWeather.
(Git instructions are preliminary. I will have to test these methods after I publish this release)
If you manually update through Git:
Run git fetch
, then git checkout 0.6-beta
. Make sure you run git stash
if you made any local changes to any scripts. Since going this method will automatically delete your existing config, you'll want to run the configsetup.py
script in the storage
folder. Configure any additional options, and launch PyWeather.
If you use PyWeather's built-in Git updater:
Let the updater do it's thing. It may fail, if it does, enter "No". Afterwards, launch configsetup.py
in the storage
folder. Configure any additional options, and launch PyWeather.
PyWeather 0.6.1 beta will come out in July, and will also bring some major backbone changes, along with extra features, too. Subsequently, PyWeather 0.6.2 beta is scheduled for release in August, and it'll bring some extra features. These ETAs are very preliminary, and conservative, and are likely to change.
After all the minor 0.6.x releases are dropped, PyWeather 0.7 beta will start development, in which tide and hurricane data will get added, and PWS data in PyWeather 0.7.1 beta. See the full "future of PyWeather" notice in the readme for more.
Enjoy PyWeather 0.6 beta! I'll be taking a 3 week hiatus from Python development, maybe doing some spontaneous development in the mean time. After mid-June, I'll be back to full storm development!
PyWeather 0.5.2.1 beta
So, while trying to test PyWeather on Termux again (yes, it now works!), I ran into a critical error, that was deemed a critical bug. Since I haven't started to work on PW 0.6 beta, it made sense that I could release 0.5.2.1 beta, which is just a hotfix. This is the entire changelog:
- Fixed a bug in which if a user didn't have key validity checking enabled, PyWeather would crash on boot, due to an undefined variable.
It happens.
Updating through Git?
git fetch
git checkout 0.5.2.1-beta
PyWeather 0.5.2 beta
A critical bug was found in PyWeather 0.5.2 beta, which didn't allow PyWeather to boot if key validity checking was disabled. Please download 0.5.2.1 instead of 0.5.2, and update to 0.5.2.1 when you can.
Howdy there! After around two weeks of mostly hard work, PyWeather 0.5.2 has dropped, with some pretty "lit" features, as all the cool kids say. Here's the full changelog, in all of it's glory!
- The option for raw tracebacks is now enabled in the Key Backup script.
- The error message for when the config file couldn't get loaded was changed. It now includes a blurb about a missing config file, since attempting to catch the actual loading of the file was a flop.
- Speaking about that, the error catching of a bad config file load is now gone.
- PyWeather Setup now has a "last resort" option for incorrectly installed libraries. For users on Linux, PyWeather Setup can now use
sudo -h pip3 install <library
to attempt library installs. - In PyWeather Setup, a warning is added to users using Python 3.0-3.4, as it's known to cause a few quirks when installing libraries.
- Apparently, when printing exceptions, the "here's the full traceback" line is using
print()
. - Version checking at the start of the setup script has been enabled, to alert users if they're setting up an old version of PyWeather. Of course, this was done while trying not to be Windows 10.
- PyWeather Setup will now alert Python 3.5-3.6 users of a possible failed geocoder install, telling them it's normal, if it occurs.
- PyWeather can now validate your API key at boot! It'll make sure that your API key can be loaded, and that it's a valid key. If the validation fails, PyWeather will try to load and validate your backup API key. If it works, PyWeather will continue on. If validation fails for both keys, PyWeather quits. You expected a statement saying "PyWeather then uses a pre-defined key", but nope!
- PyWeather can now detect how many iterations will occur in historical hourly information! This is accomplished by doing a loop before printing data, and seeing how many iterations that loop goes through. As such, you'll now see the total iterations if you turn that feature on, and some other cool stuff.
- PyWeather can now update itself through Git, given you have Git installed and enabled in your default shell. Right now, we're stashing any local changes, thus stashing config changes, but this is temporary. 0.6 beta should introduce a new way to update your config file, preserving any custom changes.
- You can now override PyWeather's predefined version. This was done out of a debugging necessity.
- PyWeather is now using the
requests
library to fetch .json files (thanks to the /r/learnpython subreddit for helping out and the suggestion!). This should hopefully avoid those pesky 400 errors that people randomly got. - Error messages have been made less vague, for debugging reasons, but also to further clarify what went wrong to the user.
- Made some minor UI changes.
- 0 easter eggs have been added to this release.
And while I was busy adding all of those new features, these bugs got fixed:
- Fixed a bug in which if tracebacks were enabled in the updater, the tracebacks wouldn't print properly. As such, a traceback was produced. Tracebackception!
- As mentioned above, most URLLib 400 errors should be fixed, thanks to the switch to the
requests
library.
As always, you have your methods of updating. Git users?
git fetch
git checkout 0.5.2-beta
Other users? Download that .zip.
You can always update with PyWeather itself.
A quick development notice. Now that 0.5.2 is done, 0.6 is under development, and will really focus on getting new, big features added to PyWeather. I've held off on adding trivial features, and adding stuff that doesn't interest me (code cleanup, etc), as I got bored of working on PyWeather with these self-set goals.
Of course, summer is coming up, and that means testing season. Expect me to tone down on devleopment to an extent over the course of May and June.
But afterwards? Full steam ahead! I'm planning on getting all major features coded in by late August, but this time estimate is volatile. I'm pushing for 2 hours of coding a day for this summer, which means more features, and less waiting!
As always, if you see a bug, report that bug. With so many new features, I likely screwed up somewhere.
Oh, and also, pyweather.py
hit 2,000 lines, the first program I've self coded to do so! If you saw, there's a branch called 2klines
, marking the exact moment when it hit 2k lines. Of course, the code provided is screwed up there. Meanwhile, setup.py
crossed the 1,000 line mark today! Across all four scripts, we're at a total line count of 3,619, so I'd expect to hit 4,000 lines across all scripts soon.
That's all for this release. See you all in the next month or so, dropping PyWeather 0.6 beta!
PyWeather 0.5.1 beta
It's been a while, and with each subsequent release, the wait times get longer. But that means more features. And that's good. Here's the changelog for 0.5.1 beta!
- Removes some old code (if verbosity == True) in the separate updater, and key backup scripts.
- PyWeather will now load your backup key in the event it can't load your primary key now. A more advanced version of this with valid key checking will come in 0.5.2 beta!
- Adds the raw traceback output option in the separate updater.
- If you have verbosity turned on, configuration options are now outputted at the start of all scripts!
- A new backup key system has been implemented. The user can now decide what directory they want the key in, but for the sake of simplicity and few errors, the filename will stay static to backkey.txt. (thanks to @ModoUnreal for the PR)
- Changes the non-critical traceback printing function in all scripts from an INFO level to a WARN level.
- The setup file has been caught up with new configuration options present in 0.5 beta.
- PyWeather's updater (integrated & separate) will now show the release tag (if you have it turned on), even if PyWeather is up to date.
- In the setup file, the key reconfirmation is now an infinite loop. You can reconfirm your key forever (if you answer no, of course)!
- PyWeather will now check for "None" precipitation amounts in the 10-day forecast for the current day, and -999 mph winds for the current day in the 10-day forecast.
- Multiline prints in setup.py have been rewritten for code beautification (if that's the right word...) (thanks to @gsilvapt for notifying me of the issue, and for submitting a PR, and for Rhombid on /r/learnpython for a good solution)
- Adds the configdefault.py script, so you can set all configuration options to their defaults.
And, while I was adding new features, bugs got fixed!
- Fixed a bug in which if the config file wouldn't load in the separate updater wouldn't load, the variable
showReleaseTag
didn't get defined, and presumably PyWeather crashed. - Fixed a bug in which in the keybackup script, the logger name was the old 0.4.2 name.
- Fixed a bug in which if Wunderground gave intervals greater than 60 minutes apart in historical "hourly" information, PyWeather would only display 24 iterations. This is fixed, but some detection methods got scrapped, so there might be a few UI quirks that I could fix later down the road (loop before the user sees the information)
- Fixed multiple UI bugs in regards to historical hourly information, and 10-day hourly information.
- Fixed a "bug" in which the config file couldn't be loaded, the "error" wasn't properly caught. Turns out, there is no error to catch.
- Fixed a bug in which if the config file couldn't be successfully written to, the error wasn't properly caught.
- Fixed a bug in which the logger name wasn't properly defined in all scripts.
0.5.2 beta is now on the release train, and it contains a cool amount of new features and bug fixes. Get ready.
A quick note, the reason behind the increased delay between releases is, you guessed it, all the new features I'm adding. I'm doing more careful coding, but I'm also not going ham at PyWeather, so the combination of both is to blame for the longer delay between releases.
However, the changelog file is constantly updating with rough ETAs on when stuff will be done. Of course, life may get in the way, and sometimes, I do want to take a break from PyWeather.
Oh, and if you're wondering, I should be "done adding new features" by the end of August. Subject to lots of change, of course!
Updating is simple enough. Git users:
git pull
git checkout 0.5.1-beta
.
PyWeather updater, download the latest zip. I'm planning to add support for git updating soon! (0.5.3 beta)
As always, report any pesky bugs you might find.
See you all in another few weeks with 0.5.2 beta!
(of course, some bugs were found while writing this release)
PyWeather 0.5 beta (The Back to the Future Update)
PyWeather 0.5 beta is by far the biggest release yet. After 3 weeks of solid work, there's a ton of features and bug fixes. Here's what I added.
Oh, and the release name is a combo for the fact that I added historical information "The Back", and 10-day hourly information "the Future". Get it? I'm sorry.
Here's the new features that got added:
- Added historical weather information to PyWeather - You can now view a summary of a day, and the detailed hourly information.
- Added 10-day hourly weather information to PyWeather.
- Adds the output of raw tracebacks in PyWeather - It'll help for reporting issues, and if you understand the Python interpreter, help you.
- Adds a method in which PyWeather will show rain/snow data on the detailed forecast, depending on the temperature for the day/night.
- Reworks the configuration file entirely, so things are more organized.
- Adds the ability to turn off the "enter to continue" prompt when viewing detailed information.
- Adds the ability to set the interval of iterations between the "enter to continue" prompt when viewing detailed information (that requires the "enter to continue")
- Adds the ability to show how many iterations PyWeather has gone through when viewing detailed information.
- Adds the option to view the release tag in the PyWeather updater, for those using git checkout.
- Makes the verbosity code much more lighter (on code lines), by removing the conditional for each verbosity statement, in the setup script.
- Adds all the verbosity for all the new functions. It's now a standard for everything rolling forward.
- Adds verbosity information for loaded configuration variables.
- Made some minor UI changes.
And, while I was at it, some bugs got fixed!
- Fixed a bug in which if the config file wouldn't load, PyWeather wouldn't load (the checking for updates on boot variable was undefined)
- Fixed a bug in which if the updater at boot couldn't contact GitHub, it'd still try and parse the non-existent updater information.
- Fixed a bug in which if exceptions occurred while attempting to fetch the almanac JSON, the exception wouldn't get caught.
- Fixed a (probably intentional) bug in which if astronomy data couldn't be fetched (when viewing detailed information, and when it wasn't prefetched), PyWeather would completely exit.
- Fixed a bug in which the setup script wouldn't start. Why? Copy + pasting is great, but it can really screw you up if you don't debug.
- Fixed a bug in which if the config file wouldn't load, the sunrise/sunset data would get shown.
To update, you can use the PyWeather updater. With Git? git pull
, git checkout 0.5-beta
.
As always, with such a big release, if any bugs appear, report them! Subsequent 0.5.x releases are on the release bandwagon, and should all be done by late April. 0.6.x will be the last of the beta releases, before we hit full on 1.x releases somewhere around June-July 2017.
Oh, and hey! PyWeather is close to hitting 2,000 lines (well..the main script), and pyweather.py is now <100 KB! Hurray!
And, no! This release is not an April Fools joke. The timing was bad. Enjoy 0.5 beta!