Skip to content

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
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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

original is now const, docstring is now there.

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
@ax3l ax3l merged commit a4d66cc into openPMD:dev Feb 18, 2025
31 checks passed
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