Conversation
Overall restructuring so we don't ship more than necessary.
…er implementation. Previously, we were compiling one, monolithic shared library. In the revised meson.build, I've separated out compilation of the core from python extension modules and removed unnecessary interdependence. Bunch and Grid<N>D were reliant on the pyORBIT_MPI_Comm wrapper over MPI_Comm, which coupled C++ core behavior and python wrapper handling thereby preventing separation. Factored out common utility functions to ascertain Python types of pyorbit objects at runtime under src/core/type_accessors.cc. Renamed all instances of "Python.h" -> <Python.h>. This is probably better for Python.h, because the header typically exists at system lib paths, not in the project dir.
Switch to #include <...> in parity with Python.h
woodtp
force-pushed
the
decouple-python
branch
from
September 13, 2026 15:52
ab98a87 to
82c3c9d
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The goal of this PR is to decouple the PyORBIT core and the Python wrapper logic to facilitate development of extensions, enable us to migrate to a different binding solution, e.g., nanobind, or potentially develop bindings for other languages.
meson.build has been configured to produce metadata for pkgconfig that will be installed under your chosen prefix:
<prefix>/lib/pkgconfig/pyorbit3.pc. This can be discovered by pkgconfig for external projects to properly find development headers and link against libpyorbit3.To install pyorbit in a conda environment:
meson setup build --prefix=$CONDA_PREFIX meson compile -C build meson install -C buildTo uninstall
cd build ninja uninstallAfter installation, headers can be found under
<prefix>/include/pyorbit3.TODO