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

JSON: Selectively suppress unknown key warnings #1700

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

franzpoeschel
Copy link
Contributor

Example use case: This came up when in the last release we added the key adios2.engine.attribute_writing_ranks. When adding this key in downstream codes (came up in PIConGPU), then that code might either be compiled against the recent version which knows that key or against the older version which knows it not.
In the latter case, a runtime warning about an unknown key will be printed. To avoid that issue, this PR adds a flag to opt-out keys from warnings:

{
  "dont_warn_unused_keys": [
    "key1",
    "key3"
  ],
  "key1": 5,
  "key2": {
    "dont_warn_unused_keys": [
      "key1"
    ],
    "key1": 5,
    "key2": 6
  },
  "key3": {
    "dont_warn_unused_keys": [
      "key1"
    ],
    "key1": 5,
    "key2": 6
  }
}

Will yield the warning:

[Series] The following parts of the global JSON config remains unused:

{
  "key2": {
    "dont_warn_unused_keys": [
      "key1"
    ],
    "key1": 5,
    "key2": 6
  },
  "key3": {
    "key2": 6
  }
}

TODO:

  • better errors upon parsing wrong configurations
  • documentation
  • testing (can we check if a test writes to stderr?)

@franzpoeschel franzpoeschel added the api: new additions to the API label Nov 25, 2024
@franzpoeschel franzpoeschel force-pushed the json-suppress-warnings branch 2 times, most recently from f0ef1f2 to 1130041 Compare December 3, 2024 17:04
For unknown keys.

{
  "dont_warn_unused_keys": [
    "key1",
    "key3"
  ],
  "key1": 5,
  "key2": {
    "dont_warn_unused_keys": [
      "key1"
    ],
    "key1": 5,
    "key2": 6
  },
  "key3": {
    "dont_warn_unused_keys": [
      "key1"
    ],
    "key1": 5,
    "key2": 6
  }
}

Will yield the warning:

[Series] The following parts of the global JSON config remains unused:
{
  "key2": {
    "dont_warn_unused_keys": [
      "key1"
    ],
    "key1": 5,
    "key2": 6
  },
  "key3": {
    "key2": 6
  }
}

TODO: Better errors when parsing, documentation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: new additions to the API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant