openPMD / openPMD/openPMD-api

JSON Update

Open
#1,037 1 comment 1 reaction 0 assignees View on GitHub
backend feature request frontend: C++17 frontend: Python3
Dominant language
C++
Stars
161
Forks
59
Avg merge
2d 22h
Merged PRs (30d)
7

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](https://github.com/ComputationalRadiationPhysics/picongpu/pull/3513#issuecomment-788820242).
- [x] more global options: explicit selection of backend and iteration encoding, etcc (?)
- [x] 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
- [x] capitalization. I favor capitalization-insensitivity, keeping consistent with how ADIOS2 does it.
- [x] More lenient datatypes in ADIOS2: To users, it seems weird that they should specify `adios2.engine.usesteps = true` (as a boolean) but `adios2.engine.parameters.OpenTimeoutSecs = "30"` (as a string).
- [ ] potentially install and expose a helper include if people want to use our shipped nlohmann-json
- [x] 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.