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

Python (Numpy) API #32

Closed
Tracked by #62
ax3l opened this issue Feb 9, 2018 · 12 comments
Closed
Tracked by #62

Python (Numpy) API #32

ax3l opened this issue Feb 9, 2018 · 12 comments

Comments

@ax3l
Copy link
Member

ax3l commented Feb 9, 2018

This issue is about providing a general Python API on top of C++ that can be used in various projects, both parallel and serial.

Possible libraries for bindings:

Ideally, it would be compatible to libs such as Dask #12 and shall very numpy-like for low-level data-access.

@ax3l ax3l changed the title Python API Python (Numpy) API Feb 9, 2018
@ax3l ax3l self-assigned this Feb 13, 2018
@CFGrote
Copy link
Contributor

CFGrote commented Feb 26, 2018

Hi @ax3l,
i was just about to start sth. similar in simex when i saw this.
i can help out here if needed. any pointers how to get started (prototype, specification etc?)

@ax3l
Copy link
Member Author

ax3l commented Feb 26, 2018

Hi @CFGrote , great to read you!
We are short before a first useful prototype, sorry I did not ping you yet!

Shall we quickly give each other a call? I will be leaving for a working travel soon and am a bit in a hurry these days...

@ax3l
Copy link
Member Author

ax3l commented Feb 26, 2018

Please also see #59 :) It's quite far :)

@CFGrote
Copy link
Contributor

CFGrote commented Feb 27, 2018 via email

@ax3l
Copy link
Member Author

ax3l commented Feb 27, 2018

Current status of the Python bindings

As soon as #59 is merged (now), the initial structure, a mini-example, compile infrastructure with CMake and dependencies and CI is available. One can then start to iterate over attributes and the common openPMD objects.

The next steps are

@CFGrote as spoken on the phone: if you are interested in reading into the numpy docs, checking the object lifetimes, etc. for the protocol buffer / numpy bindings and providing PRs that bind those for the actual read of particle and mesh records this would be a wonderful contribution :) I think you can start as soon as #59 is in.

Contribution Guidelines

P.S. If anything is missing in your sphinx manual that you need for development, do not hesitate to open issues or PRs! The sources lie in docs/source/.

@ax3l
Copy link
Member Author

ax3l commented Mar 3, 2018

@CFGrote first bindings and an example are now merged with #59 :)
Feel free to start you numpy (python buffer protocol) experiments when you have the time! :)

@ax3l
Copy link
Member Author

ax3l commented May 15, 2018

@CFGrote we fixed a couple of bugs in the last weeks and I was wondering if you have time to continue on the buffer protocol these days? :)

@CFGrote
Copy link
Contributor

CFGrote commented May 22, 2018 via email

@ax3l
Copy link
Member Author

ax3l commented May 24, 2018

Minimalistic draft of a non-slice, C++ pass-through store_chunk method: https://github.com/ax3l/openPMD-api/tree/topic-storeChunk (see commit message for details)

@ax3l
Copy link
Member Author

ax3l commented Jun 4, 2018

@CFGrote I opened a work-in-progress for numpy bindings in #219 now.

Please feel free to share your work on the python unit tests in a separate PR so we can iterate on it.

@ax3l
Copy link
Member Author

ax3l commented Jun 11, 2018

I added a first numpy draft in #219 now.

Open are the following points for which I really need unit tests to develop them further.

To Do

@ax3l
Copy link
Member Author

ax3l commented Jan 15, 2020

Pretty widely implemented and usable these days.
Doc-strings still very welcome as PRs! :)

@ax3l ax3l closed this as completed Jan 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants