We intend to switch the C/C++ extension build system to use pybind11 as discussed in this week's call. There is a demonstration in PR #23787 showing that the approach works and listing the pros and cons. It is too much work to do in a single PR so will probably be done one extension at a time. This issue is intended to track the overall progress by editing this post to tick the relevant check box and add the PR number for each extension completed.
C/C++ extensions:
Other work required:
We intend to switch the C/C++ extension build system to use
pybind11as discussed in this week's call. There is a demonstration in PR #23787 showing that the approach works and listing the pros and cons. It is too much work to do in a single PR so will probably be done one extension at a time. This issue is intended to track the overall progress by editing this post to tick the relevant check box and add the PR number for each extension completed.C/C++ extensions:
agg(start in Convert Agg extension to pybind11 #27011)c_internal_utils(PR in Use pybind11 in _c_internal_utils module #26794)ft2font(PR in Convert ft2font extension to pybind11 #28785)image(implemented in Use pybind11 in image module #26275)pathConvert path extension to pybind11 #27087qhull(PR in Use pybind11 for qhull wrapper #27184)tkagg(PR in Convert TkAgg utilities to pybind11 #26992)tri(implemented in Use pybind11 for tri module #24522)ttconv(implemented in Use pybind11 in ttconv module #25253)macosx(developer needs access to macOS)Other work required:
pybind11we only really need the[build-system]section ofpyproject.tomlwhich was added in Simplest pyproject.toml containing build-system only #24102.srcdirectory such as thearray_viewclass when all extensions completed. Pybind11 cleanup #28857numpyas a build-time dependency when all extensions completed aspybind11does not require it. Pybind11 cleanup #28857