Open
Description
This issue is supposed to collect things that we want to add to the JSON configuration of openPMD backends:
- Implement the extended layout for specifying dataset-specific configurations as experimented with already in PIConGPU.
- more global options: explicit selection of backend and iteration encoding, etcc (?)
- Priority of configuration: explicit API calls > JSON > environment variables > automatically detected stuff (e.g. file extension) > defaults
Many places already do this right, but document this and check if it's done correctly everywhere - Replace legacy compression configurations with JSON - add helper functions to build backend-agnostic JSON strings?
- JSON configuration for ADIOS1, JSON (heh) and HDF5
- capitalization. I favor capitalization-insensitivity, keeping consistent with how ADIOS2 does it.
- More lenient datatypes in ADIOS2: To users, it seems weird that they should specify
adios2.engine.usesteps = true
(as a boolean) butadios2.engine.parameters.OpenTimeoutSecs = "30"
(as a string). - potentially install and expose a helper include if people want to use our shipped nlohmann-json
- Alternatively read TOML files. Easy implementation could be done by implementing a converting reader for TOML files into instances of
nlohmann::json
. Clean implementation would be by building our own simple interface for config files that could have either JSON or TOML as a backend.