Hello,
CFFI has recently added support for Py_LIMITED_API extension modules built for CPython 3.
The wheel module since version 0.30.0 also supports passing —py-limited-api cp3X to bdist_wheel command to allow the generated .whl to be installed on all CPython versions equal or greater than the one specified.
Yesterday I was trying to apply this on a cffi-built extension module, and it worked for Linux and macOS but failed for Windows:
https://github.com/hynek/argon2_cffi/pull/32
The AssertionError from wheel.pep425tags complains that a tag with abi3 would be unsupported for the target platform.
Alex Gronholm commented
>
imp.get_suffixes() does not seem to contain any ABI3 suffixes, but I'm not sure if this is even applicable on Windows.
Incidentally, I noticed one specific package, PyQt5, that distributes both abi3-tagged wheels for Mac and manylinux and Windows wheels for a range of cp35.cp36.cp37 but with abi tag set as “none”, and they do seem to work.
So, can one make such py_limited_api wheels work on Windows with the current state of the tooling, and if so how?
Thank you in advance