Version 4.0
Core Updates:
- Adds the PluginTools base class from which all *_tools.py files inherit
- Contains 3 classes
- PluginParameters
- Separates all parameter methods from plugin.py
- Performs checks on parameter definitions
- Organises parameters with dependencies
- PluginCitations
- Performs citation information handling
- PluginDocumentation
- PluginParameters
- Contains 3 classes
- Automatically outputs all citations to citations.txt in output folder
- Outputs Savu exceptions to the user log
- Fixes bug in data padding when step > 1
- Updates inheritance of slice list classes
Plugin Updates:
- Splits plugins into processing and "tools" (parameter and citation) parts
- Adds a *_tools.py file for every plugin
- Updates parameter definitions for all plugins
- Adds citations for regularisation methods
- Updates LFOVLoader and ImageStitching plugins
- Fixes convert360180sinogram
- Adds extra options to downsample_filter plugin
- Cleans out unused plugins into unregistered folder
- Fixes a bug in MinAndMax plugin
- Adds pattern checking to ImageSaver
Configurator Updates:
- Adds new parameter_utils.py class
- Performs type checks on all parameters set in the configurator
- Checks for all basic types, e.g, int, float, bool, filepath
- Checks for complex types, e.g. list combinations, dictionaries, preview
- Hides obsolete parameters for a fixed dependency
- Fixes the order of plugin parameters
- Adds visibility levels of basic, intermediate, advanced
- Adds option to view only dataset fields
- Adds cite command
- Adds options list
- Adds expand command for simplified previewing notation
- Saves plugin citations to process list nexus file
Documentation Updates:
- Sphinx and rst updates
- Savu logo and reference fixes
- Ports Savu confluence pages to docs
- Adds example plugin templates
- Fixes plugin API
- Updates installation information
- Adds citation information
- New pages on how to develop a plugin and define parameters
Other Updates:
- Adds savu-lite installation for PC
- A more flexible and accelerated installer for Savu HPC
- Ports continuous integration tests to Github Actions
- Fixes Savu profiler
- Fixes Savu citation extractor
- Adds webhooks/event manager to Github repo for better coding practices
- Expands test coverage of plugins
- Local Jenkins server utilised to speed up the release process:
- A new fully automated software release system for Savu using Jenkins server
- Nightly builds for dependencies
- Nightly builds for Savu-lite using pre-built dependencies
- Bash scripts to automatically update packages in conda environment
- Semi-automated process of updating packages in Savu HPC installation
New Plugins Added:
- filters:
- inpainting:
- inpainting.py
- inpainting:
- reconstructions:
- projectors:
- forward_projector_cpu.py
- forward_projector_gpu.py
- projectors: