Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Submit and/or Runtime checking of YAML inputs #2900

Open
AaronDonahue opened this issue Jul 11, 2024 · 1 comment
Open

Submit and/or Runtime checking of YAML inputs #2900

AaronDonahue opened this issue Jul 11, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@AaronDonahue
Copy link
Contributor

We discussed this during our most recent dev-call. There are 2 feature requests:

  1. Allow for case-insensitive yaml parameters. Right now yaml variables are ignored if they are not the exact correct key, which includes case sensitive. For example Frequency will work for a output yaml file. frequency will not. Is there functionality in EKAT for params.get<>() to treat the key as case insensitive?
  2. Often for output yaml files a typo or unexpected behavior might not get detected until runtime, and sometimes even deep into the run, for example with monthly restarts. The example we discussed today was a parameter that wasn't being used (because it was written w/ the wrong case) which didn't pop up as a problem until deep into the run because it was a monthly output. If we had a yaml checker that could alert users to keys that are unused, for example comparing against a master list, this might avoid wasted cycles.
@AaronDonahue AaronDonahue added the enhancement New feature or request label Jul 11, 2024
@bartgol
Copy link
Contributor

bartgol commented Jul 26, 2024

I'm a bit reluctant to make the ParameterList class case-insensitive. But we could implement a validator routine for the main classes (atm proc and IO, for instance), so that if the input YAML contains an unrecognized parameter (due to case or misspelling), we can error out. Notice, however, that this can only be done at runtime.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants