This pull request will update the `main` code to version 1.4.5
Major updates
`Domain` and `Parameter` classes
* All `Parameter` classes are now private. The suggested way to add parameters to a Domain will be with the public `add_float`, `add_int`, `add_category` and `add_constant` methods.
* Change the behaviour of the public `Domain.add` method to require the type and arguments of the (private) parameter to construct, instead of requiring the private Parameter object
`ExperimentData` class
* Added a method that extracts all `ExperimentSample` objects or a selection of `ExperimentSample` objects from an `ExperimentData` object
* Removed the `.filename` attribute in `ExperimentData`: the name of the stored objects are hardcoded
* Refactored the `.path` attribute to the `.project_dir` attribute. When storing the `ExperimentData` object with the `.store()` method, a subdirectory (`/experiment_data/`) will be created and the input data, output data, domain and jobs will be stored there.
`Optimizer` class
* Added functionality to select different strategies to determine the initial points ($x_0$) before optimization.
`_Data` class
* Decoupled the headers of the `_Data` class to a separate private `_Columns` class. This makes it more flexible for future development on the generalization of different back-ends (currently pandas) for `_Data`
* Removed dependency of `Domain` to `_Data` class
Storing output data
* Output that is stored to disk will no longer have the `path_` prefix before the parameter. This information is stored within the `_Columns` object
* The `ExperimentSample.output_data` will, if applicable, load the output parameters from disk automatically
* The attribute `ExperimentSample.output_data_with_references` will give you the paths of the references
* Added backwards compatibility for `ExperimentSample.output_data_loaded` (will redirect to `ExperimentSample.output_data`
Documentation
* Made private methods of public objects visible in sphinx documentation API
Bessa Group Coding Guidelines
* Restored the original .flake8 file of the BRG coding guidelines; the maximum linewidth is now 79 instead of 119.
Miscellaneous
* Represent all private attributes and methods with an underscore (`_`).
Closed issues
* 224
* 206
* 225
* 227
* 61
* 62
* 73
* 129
* 202
**Full Changelog**: https://github.com/bessagroup/f3dasm/compare/v1.4.4...v1.4.5