The version number in SettingManager.py has been updated to 1.2.2. This is a chore commit as it does not introduce any new features or bug fixes, but rather updates the version number to reflect the current state of the code.
✨ feat(data_processing.py): add raw_data parameter to get_advanced_data function to improve flexibility
The L variable was not being computed in the get_advanced_data function, which is necessary for the calculation of the tortuosity. The raw_data parameter was added to the get_advanced_data function to improve flexibility and allow for more advanced calculations to be performed.
🐛 fix(input.py): add filename attribute to ScannedObject class
The filename attribute was not being set in the ScannedObject class, which is necessary for generating the output file headers.
✨ feat(output.py): add function to generate headers for output file
The generate_headers function was added to generate the headers for the output file. The headers include the filename, date, version, discretisation method, and whether the data was verticalised.
🚀 chore(MainWindow.py): enable process_advanced_data function
🎨 style(MainWindow.ui, UI_MainWindow.py): adjust GUI layout and label text for better user experience
The GUI layout has been adjusted to improve the user experience. The window width has been reduced from 1419 to 1336 pixels to better fit the screen. The minimum and maximum sizes of the MainSettings widget have been increased from 518 to 600 pixels to allow for more space for the labels. The labels have been updated to include the units of measurement to improve clarity.
🐛 fix(AdvancedDataWorker.py): add raw_data parameter to __init__ method
✨ feat(AdvancedDataWorker.py): add support for raw data processing in get_advanced_data method
The AdvancedDataWorker class now has a raw_data parameter in its __init__ method, which is used in the get_advanced_data method. This allows for raw data processing in addition to the existing discrete data processing.
🐛 fix(DiscreteDataWorker.py): generate headers before formatting data
✨ feat(DiscreteDataWorker.py): add support for generating headers in output file
The DiscreteDataWorker class now generates headers for the output file if the add_headers setting is enabled. The headers are generated before formatting the data to ensure that the headers are included in the output file.
🐛 fix(PreProcessWorker.py): set filename of ScannedObject
The PreProcessWorker class now sets the filename of the ScannedObject to the basename
🎨 style(UI_Settings.py): reorganize widgets in the settings UI for better readability
🐛 fix(data_extraction.py): fix standard deviation calculation to use unbiased estimator
🔧 chore(SettingManager.py): add "add_headers" setting with default value of True
The changes in UI_Settings.py are purely cosmetic and do not affect the functionality of the code. The fix in data_extraction.py corrects the standard deviation calculation to use the unbiased estimator. The addition of the "add_headers" setting in SettingManager.py allows for the addition of headers to output files.
The Sphinx documentation has been added to the project. This includes a Makefile, a make.bat file, and a conf.py file in the docs directory. The source directory contains the documentation files in reStructuredText format. The documentation includes an installation guide and an API reference. The utils package has been reorganized to be more modular and easier to document. The documentation can be built using the `make html` command in the docs directory.
🎉 feat(utils): add new modules and packages to the project
New modules and packages have been added to the project. The following packages have been added:
- utils.gui.pyqt.about
- utils.gui.pyqt.error_popup
- utils.gui.pyqt.main_window
- utils.gui.pyqt.settings
- utils.math
- utils.settings
The new packages contain modules that provide additional functionality to the project.
✨ feat(Settings.py, UI_Settings.py, settings.ui): add checkbox to enable/disable verticalisation of scanned objects
The changes add support for verticalising scanned objects before processing them. A new checkbox has been added to the settings UI to enable/disable this feature.
🔧 refactor(SettingManager.py): add default settings dictionary and refactor createInitialSettings method
✨ feat(SettingManager.py): add new settings to the config file if they are not present
The `default_settings` dictionary is added to the `SettingManager` class to store the default values for the settings. The `createInitialSettings` method is refactored to use the `default_settings` dictionary to set the initial values of the settings. If new settings are added to the `default_settings` dictionary, they are added to the config file if they are not already present. The `remove_changed` method is added to remove the `has_changed` flag.
🔨 refactor(SettingManager.py): reorder authors list and update description
The version number has been updated to 1.2.0 to reflect the changes made to the application. The authors list has been reordered and the description has been updated to provide a more detailed explanation of the tool's functionality.
The authors value was previously a string with multiple authors separated by a comma. The value has been changed to a list of strings to match the expected format.
The SettingManager class now has a version attribute to keep track of the version of the configuration file. If the version in the configuration file is different from the version in the SettingManager class, the version in the configuration file is updated to match the version in the SettingManager class. This ensures that the configuration file is always up-to-date with the latest version of the application.