- the total size of our binary modules is unnecessarily large due to symbol duplication;
- much of our wrapper code (especially in afw) is fragile due to poor handling of circular dependencies between classes;
__module__strings are too long, as they include implementation-detail packages and modules that should not be exposed to users.
Unfortunately, the new approach cannot easily be applied incrementally within a package; in general one either needs to convert the entire package or none of it. Until the new approach is in place across the board (only
geom have been converted so far), it’s fine to continue using the old one in packages that have not yet been converted.
If you’re adding bindings for a new package, converting an old one, or just want to understand the code you’re seeing, please check out the new pybind11 how-to section in the DM developer guide.