Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current configuration system suffers from some challenges, including fragile / special-case parsing of container traits. This work aims to make this area of the code robust and more future-proof:
Move config tools into a submodule, extract some things from traits.py.
Support arbitrary nested containers, including parsing of those and None values from the commandline. Expand unit tests to included nested containers.
Dedicated set of routines for translating back and forth from trait values and strings.
Separate file-format code more cleanly from code that just works with the internal config dictionary format.
Add support for YAML config files, along with existing JSON and TOML formats.
Expand the
toast_config_verify
script to support loading and migrating old config files to new ones (or for converting between supported formats).Keep support for loading old config files, while printing warnings telling the user to update their configs.
As part of testing these changes, I checked (with
toast_config_verify
) that existing config files from CMB-S4 DC0 and from S.O. integration tests are loadable (with deprecation warnings).