[stubsabot] Bump cffi to 1.17.*
Release: https://pypi.org/pypi/cffi/1.17.1 Homepage: http://cffi.readthedocs.org Repository: https://foss.heptapod.net/pypy/cffi Typeshed stubs: https://github.com/python/typeshed/tree/main/stubs/cffi Changelog: https://cffi.readthedocs.io/en/latest/whatsnew.html
If stubtest fails for this PR:
- Leave this PR open (as a reminder, and to prevent stubsabot from opening another PR)
- Fix stubtest failures in another PR, then close this PR
Note that you will need to close and re-open the PR in order to trigger CI
From the Changelog:
In API mode, when you get a function from a C library by writing fn = lib.myfunc, you get an object of a special type for performance reasons, instead of a <cdata ‘C-function-type’>. Before version 1.17 you could only call such objects. You could write ffi.addressof(lib, “myfunc”) in order to get a real
object, based on the idea that in these cases in C you’d usually write &myfunc instead of myfunc. In version 1.17, the special object lib.myfunc can now be passed in many places where CFFI expects a regular object. For example, you can now pass it as a callback to a C function call, or write it inside a C structure field of the correct pointer-to-function type, or use ffi.cast() or ffi.typeof() on it.
This sounds like it might need some changes to the stubs to accept this special object.
Fixed by #13653.