Closed maxthemouse closed 2 years ago
I might use toml format as it is more friendly than json and less complicated than yaml. It is used by several communities (rust, go, julia) for configuration files.
A possible option may be to use a folder selecting widget to get the data. Typically, most parameters are fixed and the data set is selected to process each one. However, some things may vary so it should be easy to make changes. This is where the gui was a bit easier to work with. It may be possible to do something similar using active widgets in the notebook. I think there are such things which are used for interactive notebooks.
Another option is to use a 'configuration page'. Basically a notebook to set and save the parameters. The disadvantage is that the user will need to switch back and forth. The advantage is that settings like the base folders only have to be done once. Parameters can be organized into one place.
One issue I run into when developing is making sure that there is no sensitive information left in the notebooks. For example, the path to the data can have project numbers, sample names and the like that should not be saved in git. Using a configuration file would make it easier to default to generic values while making it easier to save project specific values that can be saved with the data.