Sadly AFAIK you always need a `cdef` which defines the binding between Python and C, I don’t think you can tell cffi to get this information from a real header file. But by providing a custom source you can more easily ensure the `cdef` and the function for it match correctly, with `set_source` bridging to the real underlying functions.
One drawback of using API-level CFFI is it requires a C compiler (and probably all sorts of dev packages / headers), whereas ABI-level use doesn’t.
You could use sys.platform()
But SerenityOS has pledge and unveil too.
https://awesomekling.github.io/pledge-and-unveil-in-Serenity...
Dunno if Python runs on SerenityOS or not yet tho
> "Systems other than OpenBSD may support these functions, now or in the future, and it would be nice to automatically make use of them when available. This means no checking for OpenBSD specifically but instead feature sniffing for their presence."
I view this as a feature and not a bug. There's a good chance there are other things to consider when a new OS adds pledge or unveil, and this gives the developer a chance to test support on the new OS before anyone uses it.
Basically, I disagree with the article that you want to implement this in Python in a completely OS agnostic manner.