WeatherLog 4.8

This update is entirely internal changes that should not be visible to the user.

Changes (Code)

  • Added new commands.py module for command line features.
  • Added new function datasets.py:get_column_list(). This works similarly to datasets.py:get_column(), but accepts multiple columns instead of one.
  • Simplified getting lists of dates, using the previously mentioned function. Any other code that could be simplified in the same way will be when found.
  • Usage of update_list(), update_title(), and save() is now more consistent.
  • Removed extra, unnecessary calls to update_list().
  • Simplified save().
  • File headers, descriptions, and module imports are now more consistent. This sounds like a simple change, and individually it was, but it affected every file of code in the application. The files now more clearly state their purpose, and they are formatted identically as well.

Changes (Bugfixes)

  • Fixed non-option configuration data occasionally being overwritten. This bug did not affect any user-entered configuration, of the type entered in the Options dialog. It only affected internal configuration that must be manually edited. No options should have been lost as a result of this.

Download

Downloads and code are available on Github.
Project page: https://github.com/achesak/weatherlog
Release page: https://github.com/achesak/weatherlog/releases/tag/v4.8

WeatherLog 4.7

Changes (Features)

  • Bar charts now only use integers on the y-axis. It didn’t really make sense to x.5 of a day of weather.
  • Charts changes:
    • Added extra spacing to columns in Charts. This should make it much easier to read, as before everything was very compact.
    • Simplified display of data in Charts:
      • Any field that previously was “X Value” is now simply “X”. For example, “High Value” became “High”.
      • Fields displaying a numerical difference are no longer formatted with “above” or “below” but instead plus or minus signs. For example, “5.4 above” became “+ 5.4”.
  • Changed error message for Export to Pastebin to be more descriptive and better match the error messages used for Add New and Get Weather.
  • Data Subset changes:
    • Changed name of “condition” to “operator”. This is because “condition” was used to refer to both the operator used (equal to, greater than, etc) and the entire comparison (data field, operator, and value).
    • Added case insensitive option to Data Subset.
  • Added option for default selection mode for Data Subset.
  • Added longer and more descriptive confirmation text for Clear All.
  • Get Weather now rounds temperature, pressure, and precipitation values to one digit instead of to integers. This fixes oddities like days with “0 cm” of rain.
  • Added Control-Shift-w keybinding for Get Weather For.

Changes (Code)

  • Renamed new_dialog.py to add_dialog.py.
  • Moved check to see if matplotlib is installed to a function in the launch module.
  • data_range() and data_selected() now use application constants to determine the info type instead of strings.

Changes (Bugfixes)

  • Fixed Gtk throwing a warning when the application first started.
  • Fixed Add New not formatting dates properly when a new date was selected. All dates in WeatherLog are supposed to be formatted as “dd/mm/yyyy”. Changing the date in Add New when the day or month was a single digit could result in shortened dates like “d/m/yyyy”. To be clear, this was a display issue only; the unintentional date format still worked, and any data that is formatted this way will continue to work.

Download

Downloads and code are available on Github.
Project page: https://github.com/achesak/weatherlog
Release page: https://github.com/achesak/weatherlog/releases/tag/v4.7

WeatherLog 4.6

Changes (Features)

  • Added “Select All” button to “Info/Charts/Graphs for Selected Dates” date selection dialog.
  • Added option for forecast period; can be between 1 and 16.
  • Added message when using “purge” command line argument.
  • Added new location entry dialog for “Get Weather For”. This dialog allows the user to select whether the location they enter is a city or zip code.
  • Added error message to “Add New” and “Get Weather” for when the user attempts to use these features with no OpenWeatherMap API key set.

Changes (Code)

  • Merged info_range(), charts_range(), graph_range() into data_range().
  • Merged info_selected(), charts_selected(), graph_selected() into data_selected().
  • Fixed incorrect dialog class comments.
  • Removed old dict used previously for Yahoo! Weather.
  • Removed unnecessary error checks.

Changes (Bugfixes)

  • Fixed “Add New” and “Get Weather” throwing errors if not connected to the internet.
  • Fixed “Add New” using the wrong configuration variable to get user’s location (‘location’ instead of ‘city’/’zip’).
  • Fixed incorrect “Edit” dialog text.
  • Fixed “Get Weather For” always using location set in options.
  • Fixed issue with “deg” (wind direction, in degrees) not always getting set in OpenWeatherMap data.

Download

Downloads and code are available on Github.
Project page: https://github.com/achesak/weatherlog
Release page: https://github.com/achesak/weatherlog/releases/tag/v4.6

WeatherLog 4.5

The biggest change this release was a switch from using Yahoo! Weather to OpenWeatherMap to get the weather data for automatic entering of data, current weather, and forecasts. This was due mostly to Yahoo! Weather changing their API somewhat and completely breaking pywapi, the previous library I had used. As a replacement I wrote a simple OpenWeatherMap library, creatively called weatherlog-openweathermap.

Overall, this switch brought quite a few extra benefits for users with it:

  • Data is no longer limited to the US, and now also includes most of the world. This is something that could technically have happened with the Yahoo! Weather API, but it would have required making significant changes to pywapi.
  • Location no longer needs to be specified as a zip code, but can now be entered as a city, town, state, or other district type. For example, these are all valid locations: “60601”, “Chicago”, “Cook County”, “Illinois”. Of course, zip code or city name will give the most accurate and specific results.
  • Country can be specified, in case a location name is used by multiple countries.
  • Weather conditions are no longer limited to just one and can be more in-depth. For example, while previously the current weather may be specified as simply “rainy”, it may now say “rainy, overcast, cold”. This is highly dependent on what the API returns, however, and it doesn’t seem to use this format for all locations. For those that it does not the condition will display similarly to the old one.
  • Forecasts now give much more detail. High, low, morning, evening, and night temperatures are now given, in addition to rain or snow amounts. However, the new API does not specify a wind chill, so that was removed.

Changes (Features)

  • “Clear”/”Remove” changes:
    • Removed “Clear”.
    • Added “Remove All” button to “Remove” dialog.
    • These changes were to improve clarity and remove redundant features. As there was already a “Remove” feature, a specific “Clear” menu item did not seem necessary. It could also lead to confusion between “Clear” and “Clear All”.
  • Added “Quick Search” feature. This is similar to “Data Subsets”, but is much simpler as it only allows the input of one search term. Each row of data is then checked to see if it contains this term.
  • Added “Search” options tab and an option for if case insensitivity should be used in searches by default.
  • Improved “Data Subsets” dialog titles, to make it more clear when working with the results of a filter.
  • Switched from Yahoo! Weather to OpenWeatherMap.
    • Added “Data” options tab with the following options:
      • City
      • Zip code
      • Country
      • Location type to use
      • API key
    • Added additional data to “Get Weather” forecasts.
    • Removed some automatically filled terms (notably wind chill).

Changes (Code)

  • launch.py: renamed “check_files_exist()” to “ensure_files_exist()”, to better describe what the function does. It does not only check for existence but also creates the files if needed.
  • Cleaned up some unnecessary and redundant comments.
  • Weather condition codes now use application constants.
  • Cleaned up info and charts classes. Previously they were quite the mess, as each tab had been added with a numerical suffix to distinguish between them. However, this was not very clear as to the purpose of each tab, and also resulted in out of order suffixes as the tabs were rearranged. The variables are now named much more sensibly after their purpose (ex: “info_box1” became “gen_box”).

Changes (Bugfixes)

  • Fixed unnecessary symbols appearing in “Data Subset” HTML export.

Download

Downloads and code are available on Github.
Project page: https://github.com/achesak/weatherlog
Release page: https://github.com/achesak/weatherlog/releases/tag/v4.5

WeatherLog 4.4

Changes (Features)

  • Merged “Copy Data” and “Move Data” into one window.
  • “Copy Data” now has a Conflicts column when selecting which data to copy.
  • “Edit” now shows a date selection dialog if no data was selected in the main window.
  • “Remove” now shows the selected dates in the confirmation dialog.
  • Removed some unnecessary newlines in dialog text.
  • “Export to Pastebin” changes:
    • “Export to Pastebin” will now ask the user if they want to open the link in their web browser.
    • Added a default name for new pastes. This name is used if the user leaves the “name” field blank in the dialog.
    • Added new options for default paste name, exposure, and expiration.
    • Increased default width of “Export to Pastebin” dialog.
    • Fields in “Export to Pastein” dialog can now expand.
  • “Get Weather” changes:
    • Added an image to the dialog that changes based on current weather conditions.
  • Added “purge” command-line option. This will completely remove all data and configuration files. Not intended for users (“Clear All” already serves that purpose), more of a development thing for when potentially breaking changes are made to the files.
  • All dialogs can now be resized. I’m not sure why I even added this limitation in the first place.
  • Dataset selection windows that allow multiple selections now have the proper label.

Changes (Code)

  • Moved help link into data files.
  • Variables that used all caps have been changed to the rest of the application’s conventions.
  • Removed some unnecessary dataset checks for if datasets other than the currently open one existed. These were no longer necessary with the new dialogs.
  • Minor comment changes for dialog file headers.
  • Dataset metadata files now use JSON (renamed from “metadata” to “metadata.json” with a format change).
  • Main configuration file renamed from “config” to “config.json”. This file already used JSON format, this was merely a name change.
  • Merged “lastprofile” and “window_size” configuration files into a new file called “application_restore.json”.
  • Cleaned up “CurrentWeatherDialog” dialog class.
  • Moved note truncation code to “datasets.py” module.
  • Added “pastebin.json” data file, with expiration and exposure constants.
  • Added dataset column index constants.
  • Merged “DatasetNameDialog” and “LocationDialog” into “GenericEntryDialog” (entry_dialog.py).

Changes (Bugfixes)

  • WeatherLog now fully uses the “title” UI variable.
  • Fixed errors that would occur in “Add New” and “Get Current Weather” if the user was not connected to the internet.
  • Fixed “Clear All” causing an error and being unable to clear options.
  • Fixed “Clear All” resetting options with some options missing.
  • Fixed window width and height sometimes getting swapped when restarting the application.
  • Fixed being unable to start the application if certain configuration or data files were missing.
  • Fixed recurring warning messages when launching the application using the default configuration.
  • “Export” fixes:
    • Fixed Unicode errors in “Export to CSV”.
    • Fixed Unicode errors in “Export to HTML”.
    • Fixed formatting issues in “Export to CSV”.
    • Fixed extra “%” sign appearing in Humidity column title in “Export to HTML”.
  • Fixed an error that would occur when attempting to move data between datasets.
  • Fixed the dataset validation dialog not showing the proper dialog text.
  • Fixed moving data then immediately switching datasets not removing the data from the original dataset.
  • Fixed “Edit” not showing a dialog if there is no data to edit.
  • Fixed some inconsistent dialog text in dialogs used by dataset functions.

Download

Downloads and code are available on Github.
Project page: https://github.com/achesak/weatherlog
Release page: https://github.com/achesak/weatherlog/releases/tag/v4.4

WeatherLog 4.3

Changes (Features)

  • Import changes:
    • Merged Import with Import and Merge. These now split only after the file has been selected and validated.
    • Import and Merge has been changed to the default option.
    • Added “Conflict” column to Import date selection dialog. This will display “No” for a row if it doesn’t already appear in the existing dataset, or “Yes” if it appears in both.
  • Remove Datasets changes:
    • Remove Datasets now allows the current dataset to be deleted. If this happens when other datasets exist it will choose the first (alphabetically sorted) dataset to switch to afterwards. If this happens when no other datasets exist it will create a new, blank “Main Dataset”.
    • Added keybinding for Remove Datasets.
  • Rename Dataset changes:
    • Rename Current Dataset has been renamed to Rename Dataset.
    • Rename Dataset now allows the current dataset to be renamed.
  • Changed About dialog link to the Github repository.
  • Data validation is now done before any other prompts for Import.
  • Added more descriptive error dialog messages for Copy Data to New/Existing Dataset.
  • Removed unnecessary space from exported HTML.
  • Added extra padding to Export to Pastebin dialog.

Changes (Code)

  • Changed location of application files on Windows.
    • Previous location: C:\.weatherlog
    • New location: C:\Users\[username]\AppData\Local\weatherlog
    • NOTE: this will break backwards compatibility on Windows! This can be avoided by copying the data files at the previous location into the new one, as the files themselves haven’t changed.
  • Moved some application data into new files:
    • Created subdirectory weatherlog_resources/appdata for these files.
    • Moved menu.xml into this directory.
    • Created new file ui.json for interface data.
    • Created new file units.json for details on units.
    • Created new file default_config.json for storing the default configuration.
    • Created new files weather_codes.json for storing the weather detail codes.
  • Added new option “debug_mode”. If this is set to true the application will output debug info in certain functions. Note that there is no way to set this from the Options dialog, as it is obviously not meant for a user. This is pretty much just for my own use.
  • Miscellaneous dialogs (misc_dialogs.py module) now use application constants.
  • About dialog now has the parent properly set.
  • Copy Data to New/Existing Subset now use application constants.
  • Simplified code to set default options.
  • Error message changes:
    • Error messages now write the full error description.
    • Error messages now write the function in which the error occurred.
  • Miscellaneous comment improvements; continued to remove mentions of “profile”.
  • Simplified exported HTML title creation.
  • Removed unnecessary import.

Changes (Bugfixes)

  • Fixed Remove not stopping if there is no data.
  • Fixed Data Subset not stopping if there is no data.
  • Fixed Graphs not stopping if there is no data.
  • Export and Export to Pastebin now use the correct error dialog.
  • Fixed Import as New Dataset not working at all.
  • Fixed Import as New Dataset not creating a new metadata file.
  • Fixed metadata not being created properly when recovering from a missing dataset.

Download

Downloads and code are available on Github.
Project page: https://github.com/achesak/weatherlog
Release page: https://github.com/achesak/weatherlog/releases/tag/v4.3

WeatherLog 4.2

Changes (Features)

  • Merge Datasets had some major changes:
    • Current dataset can now be merged.
    • Multiple datasets can now be merged at once.
    • Instead of merging into an existing dataset, Merge Datasets now prompts for the name of a new dataset to create with the merged data.
  • Edit now has a stock icon and a toolbar button.
  • Removed Clear Data toolbar button.
  • Info, Charts, Graphs, and Data Subset dialogs no longer force modal.

Changes (Code)

  • Finally removed the last of the comments referring to “profiles”. These now refer to “datasets”.
  • DatasetSelectionDialog now uses a new set of application constants for the selection mode (single/multiple).

Changes (Bugfixes)

  • Fixed Edit causing an error if no row was selected.

Download

Downloads and code are available on Github.
Project page: https://github.com/achesak/weatherlog
Release page: https://github.com/achesak/weatherlog/releases/tag/v4.2