This MR introduces an extensive refactoring of the pystencils-sfg configuration system, adds documentation and user guide sections about configuration, and extends the test suite.
pystencilssfg.configuration
by pystencilssfg.config
; replace SfgConfiguration
by SfgConfig
SfgConfig
Option
descriptor to separately model default values and keep track of unset options
None
will now always represent an unset option, i.e. one that the user has not specified.
The default value for that option is still encapsulated by the Option
descriptor, and will be returned as a fallback
when calling get_option
.sfg_config()
by configure_sfg(config: SfgConfig)
, which gets a config object and must mutate that object to set the project configurationproject_info()
function that must return the project info object, instead of setting it on the configurationCONFIGURATOR_SCRIPT
cmake variable in favor of CONFIG_MODULE