Allow [[core.data.variable]]
to be split across files
#710
+50
−13
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.
Description
This PR updates
config_merge
to handle the special case where configuration sources provide identical key paths but the values are both lists. In this case, the config merges the two lists, rather than adding a conflict.The main (only?) structure giving this is in TOML is the array of tables, which is what we use for
[[core.data.variable]]
. This PR doesn't guarantee that the merged lists make any sense but downstream configuration checkers should handle that. It also means you could in split other array of tables structures (like[[plants.pft_type]]
) across files. That strikes me as stupid, but not wrong, and I think there are clear advantages of allowing model-specific data to be bundled with model config settings.Fixes #709
Fixes #234
Type of change
Key checklist
pre-commit
checks:$ pre-commit run -a
$ poetry run pytest
Further checks