For “most common” and “number of”-type fields in Info, the number of occurrences is now shown.
For precipitation totals, precipitation number of days days, air pressure number of days, cloud cover days, and cloud type days, the percentage of the respective total is now shown.
Added “most common cloud type” and “most common cloud cover” fields for Cloud Cover Info.
Added longer, more descriptive error message shown if Matplotlib isn’t installed when the user tries to open Graphs.
Renamed “Wind” graph to “Wind Speed”.
Renamed some menu items to be more consistent.
Reorganized some menu items.
Renamed some option text to be more descriptive.
Added tooltips to options.
Renamed “pre-filling” to “automatically filling”, and made some changes to the “data was automatically filled” dialog.
Removed “Save automatically” option and “Manual Save” menu item. All saving of data will now be done automatically. This feature hasn’t been relevant for quite a long time, as it was initially a workaround for issues with how data was saved in very early versions of WeatherLog.
Slightly changed exit confirmation message.
Renamed button in export file selection dialog to “Export” (was previously “Save”).
Renamed “OK” button when selecting conditions for a data subset to “View”.
Added a check in data subset condition selection so that conditions with blank values can no longer be entered.
CODE: file export selection dialog now uses a generic function (show_export_dialog()) instead of instances of Gtk.FileSelectionDialog.
CODE: rewrote exporting code to use generic functions. Instead of needing functions for each feature (main data list, subsets, info, charts, current weather), they now all use the generic function export.html_generic(). In addition, removed export_info module as it was now unnecessary.
Fixed formatting issue with Weather Forecasts.
Added error checking for “Export to CSV” and “Export to HTML” buttons in Export. Previously, if no filename had been entered they would fail silently.
There are two new releases just because I forgot to commit a change I made before adding the release on Github, which evidently doesn’t let you delete or edit releases.
Add New will now prompt to overwrite existing data if the user selects a date that has already been entered. Previously it would show an error and close the dialog when this occurred, in order to prevent accidental overwrites. However, this also meant that if a user wanted to completely overwrite data (as opposed to using the Edit feature) they would need to delete it first then enter the new data, which was a needlessly long process.
Implemented date rounding for Info in Range, Charts in Range, and Graphs in Range. In previous versions of WeatherLog the dates selected had to have data entered for them, but this wasn’t very flexible, as it required the user to know the exact dates data was entered in. Now if the starting date isn’t found it will round up to the next entered date, and if the ending date isn’t found it will round down to the previous entered date.
Added more descriptive error messages. Nobody wants to see a dialog telling them something is invalid without giving any clues on how to fix it. In particular, the error messages for validating dataset names and imported data are much more descriptive, and will say exactly what is wrong. Info in Range, Charts in Range, and Graphs in Range also had their error messages improved.
Changed some default dialog sizes to be more consistent.
Fixed WeatherLog not being able to start when matplotlib wasn’t installed. The intent was to allow the application to work normally without that library, but simply disable graphs. However, there were missing import checks in two modules that caused it to fail.
Fixed incorrect title formatting in Info in Range that caused an error.
Fixed typo in error dialog in Info in Range, Charts in Range, and Graphs in Range.
Added three new data fields: “Wind Chill”, “Visibility”, and “Cloud Type”.
Added new interface for Add New and Edit windows (see end of post for images). The new windows are split into multiple sections to organize the fields better and make entering data clearer. In addition, it’s now possible to specify the units to use for each individual field. The slightly-buggy and rather unintuitive field conditional disabling system has also been removed for both Add New and Edit.
Added new interface for Data Subsets (see end of post for images). The “simple” and “advanced” windows were streamlined into one, and the previous checkbox-based system was changed to a listbox to make it easier to add, remove, and view conditions.
Added Wind Chill, Visibility, and Cloud Type graphs, info screens, and charts.
Renamed “Profiles” to “Datasets”.
Renamed “Manual Save” to “Save Data”.
Changed the Export to Pastebin feature to use a window instead of a menu, and added the ability for users to specify the paste title.
Removed “Reload Current” as it has not been necessary for quite a while now.
Updated some dialog text.
Major refactoring of some internal modules. Mostly splitting up some files (utility_functions.py in particular) into smaller ones. Some files were also renamed to be more consistent.
The big change in this release is the addition of graphs, something that I’ve wanted to add in for quite a while but never got around to. They’re implemented using matplotlib, which makes it very easy to do.
(Click the screenshots for larger images.)
Added new context (right-click) menu to the main data list, with some basic actions (Add New, Edit, Remove, etc).
Merged some files into others:
directions.py -> utility_functions.py
convert.py -> utility_functions.py
ui.py -> launch.py
Minor renaming of some things.
Fixed WeatherLog not working with Python 3. Apparently relative imports work slightly differently between Python 2 and Python 3.
Downloads and code are available on Github. From now on this will be the only source for the downloads; the SourceForge page is no longer going to be updated.
I’ve finally gotten around to working on the graphs, a feature that I’ve meant to add for quite a while now. I’ve decided to use the excellent matplotlib graphing library, as it is fairly straightforward to use and can easily be embedded into GTK applications.
This is what I have currently, with some example data. I’m not too fond of the x-axis (not very easy to read), but there’s not much I can do about that. One thing I really appreciate, though, is that matplotlib will automatically scale the axes to the numbers it’s given, so I don’t have to worry about that myself.