Extensions in Cython and other compiled languages can be built by newer build backends based on PEP 517 and PEP 621. I expect this move to ease the side of packagers and others who have to build from source, as well as that of maintainers who would have less code to maintain than that of setup.py. The downside is that it adds an extra dependency.
I had this idea because I always get a circular import error while trying to package (building from source) cf-units for GNU Guix:
E ImportError: cannot import name '_udunits2' from partially initialized module 'cf_units' (most likely due to a circular import) (/tmp/guix-build-python-cf-units-3.2.0.drv-0/cf-units-3.2.0/cf_units/__init__.py)
In 3.1.0 and before that error would happen in build time, before I could compile the Cython extensions. But in 3.2.0 it only happens when running the test suite. That hints of a change in setup.py, but I haven't investigated much.
📰 Custom Issue
Extensions in Cython and other compiled languages can be built by newer build backends based on PEP 517 and PEP 621. I expect this move to ease the side of packagers and others who have to build from source, as well as that of maintainers who would have less code to maintain than that of setup.py. The downside is that it adds an extra dependency.
I had this idea because I always get a circular import error while trying to package (building from source) cf-units for GNU Guix:
In 3.1.0 and before that error would happen in build time, before I could compile the Cython extensions. But in 3.2.0 it only happens when running the test suite. That hints of a change in setup.py, but I haven't investigated much.