-
Notifications
You must be signed in to change notification settings - Fork 128
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
New high level Python API for ADIOS2 #3813
Comments
One thing that came up in earlier discussions was that it would be nice if there were a transition path from high-level API to lower-level API (because not everything is/was possible in the high-level API). Might be a good thing to think about in the rework. |
An example would help illustrate this point. The goal was always to keep the high level API simple. Also, minimizing Python code was a goal to make the bindings as lightweight as possible. Checking with current bindings users to get their feedback would also help. |
@williamfgc the rational for this task was:
The proposed idea solves it by:
|
resolved at #3974 |
@vicentebolea thanks for the great work! I was just curious on how it will impact existing users. We spent a great deal of time looking at different options for bindings, even deprecating high-level APIs in low-level C and Fortran. Glad this is done. |
The adios2 high level python API is a great tool for users who want to interact with the adios2 library without having to learn the C++ API. However, the high level API is incomplete and there is not a possible way to connect the high level API with the low level API (Python bindings). The low level API is discourage to be used since it is a simply 1to1 implementation of the C++ bindings API.
Proposal:
I propose that we refactor/improve/update the adios2 high level python API to address the above issues. Specifically, I propose the following changes:
For the High level API I do not only propose to bring the low level API classes as it is but also made them more pythonic in a few ways. For example, the use of keyword arguments could be more consistent, and the API could use more pythonic data structures, such as lists and dictionaries, instead of a simply translation of our C++ API.
Benefits:
The proposed changes would make the adios2 high level python API more pythonic and easier to use. They would also make the Python API more stable as it does directly depends on the C++ API.
Implementation:
We want to implement the High level API purely in Python using the ADIOS2 python binding as a backend. The implementation will take the following steps:
Timeline:
We aim to finish this by the end of 2023
The text was updated successfully, but these errors were encountered: