Technical Details
This page contains miscellaneous technical details about WeatherLog internals. This information is given mostly for debugging and development purposes.
- WeatherLog has the following dependencies:
- Python - As it is written in Python, WeatherLog requires the Python interpreter to run. Development is done using Python 2.7.x, but Python 3.x should work as well. Any version earlier than 2.7 has not been tested, and WeatherLog may not run on these versions.
- GTK+ 3 - WeatherLog uses GTK+ 3 for the GUI. GTK+ 3.0 is the minimum version required, as no UI features from more recent versions are used.
- WeatherLog uses the following libraries:
- pywapi (python-weather-api) - WeatherLog uses the python-weather-api library to retrieve weather data from the Yahoo! Weather service. The library is provided with the application to remove an extra external dependency.
- Data files are stored in
$HOME/.weatherlog
. The following is a full list of subdirectories and files, with descriptions:$HOME/.weatherlog
- Main directory, contains all other files.$HOME/.weatherlog/config
- Configuration file, contains the program options stored as JSON. If the user has not changed any options from the defaults yet then this file may not exist.$HOME/.weatherlog/lastprofile
- Configuration file, contains the last used profile. This file is read when the program starts, and the profile that was used last in the previous session is reopened.$HOME/.weatherlog/window_size
- Configuration file, contains the last window size. This file is read when the program starts, and the window is set to the last used dimensions. The first line contains the window's width, and the second contains the height (both in pixels).$HOME/.weatherlog/profiles
- Profiles directory, contains all the data files. Each profile is represented by a subdirectory within this one.$HOME/.weatherlog/profiles/[PROFILE_NAME]/weather.json
- Data files, contains the user-entered data for that profile. Data is stored as JSON, with each list within the main one representing a row of data. It is not recommended to manually change these, as WeatherLog assumes some fields to be certain values or within a certain range, and setting the value to something outside of that criteria could break calculations.