Mouse-Imaging-Centre / pydpiper

Python code for flexible pipeline control
Other
24 stars 10 forks source link

Improve internal configuration handling #460

Open bcdarwin opened 2 years ago

bcdarwin commented 2 years ago

Essentially we want good handling of configurations, e.g. automatic generation of parsers for a configuration type, better help and error messages, better runtime error handling, better (de)serialization of configs, handling hierarchical and duplicate configs, merging, etc. [for an early version of some motivation, see https://stackoverflow.com/questions/33224213/creating-composable-hierarchical-command-line-parsers-using-python-argparse].

We should evaluate existing libraries for this rather than replacing ad-hoc functionality with more of the same. Candidates include omry/omegaconf (possibly with facebookresearch/hydra, but probably not; also see https://github.com/facebookresearch/hydra/issues/633 regarding both), lebrice/SimpleParsing, click, the traits/traitlets family, (c)attrs, and pydantic.