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 5 commits into
base: dev
Choose a base branch
from

Conversation

franzpoeschel
Copy link
Contributor

@franzpoeschel franzpoeschel commented Nov 25, 2024

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

@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
@franzpoeschel franzpoeschel force-pushed the json-suppress-warnings branch 2 times, most recently from e91e724 to 5db738e Compare December 11, 2024 09:39
@ax3l ax3l self-assigned this Jan 28, 2025
@ax3l ax3l self-requested a review January 28, 2025 18:38
@@ -162,6 +162,9 @@ namespace json
nlohmann::json *positionInShadow,
SupportedLanguages originallySpecifiedAs,
bool trace);

void init();
static void init(nlohmann::json &original, nlohmann::json &shadow);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Are both original and shadow modified or is one const &?
  • Please add a doxygen

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
@franzpoeschel franzpoeschel force-pushed the json-suppress-warnings branch from 25c9cb0 to 0de9f15 Compare January 30, 2025 11:09
@franzpoeschel franzpoeschel requested a review from ax3l February 3, 2025 10:24
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.

2 participants