Skip to content

Conversation

@tskisner
Copy link
Member

@tskisner tskisner commented Dec 4, 2025

This PR replaces #212. This work performs the minimal replacement of boost::python with pybind11. It also:

  • Replaces large, fragile, ad-hoc setup.py with direct running of cmake from pyproject.toml, using scikit-build-core.

  • Incorporates a local copy of boost/math/quaternion.hpp with trig functions removed to lift any dependency on other boost parts.

  • Cleans up python imports (which had absolute imports of "so3g") and replaces with relative imports within the package.

  • Moves the python package into a python/so3g subdirectory, which makes discovery by the build system easier.

- Convert boost::python bindings to nanobind.  Keep interfaces as close
  as possible to the existing ones.  In particular, the direct CPython
  interface is NOT replaced with nanobind.ndarray<>.  Mainly only
  nb::object and nb::cast are used.

- Replace large, fragile, ad-hoc setup.py with direct running of cmake
  from pyproject.toml, using scikit-build-core.

- Incorporate a local copy of boost/math/quaternion.hpp with trig
  functions removed to lift any dependency on other boost parts.

- Clean up python imports (which had absolute imports of "so3g") and
  replace with relative imports within the package.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants