On Sat, 16 Dec 2017 19:37:54 +0100 Antoine Pitrou <solipsis at pitrou.net> wrote: > > Currently, you can pass a `module_api_version` to PyModule_Create2(), > but that function is for specialists only :-) > > ("""Most uses of this function should be using PyModule_Create() > instead; only use this if you are sure you need it.""") Ah, it turns out I misunderstood that piece of documentation and also what PEP 3121 really did w.r.t the module API check. PyModule_Create() is actually a *macro* calling PyModule_Create2() with the version number is was compiled against! #ifdef Py_LIMITED_API #define PyModule_Create(module) \ PyModule_Create2(module, PYTHON_ABI_VERSION) #else #define PyModule_Create(module) \ PyModule_Create2(module, PYTHON_API_VERSION) #endif And there's already a check for that version number in moduleobject.c: https://github.com/python/cpython/blob/master/Objects/moduleobject.c#L114 That check is always invoked when calling PyModule_Create() and PyModule_Create2(). Currently it merely invokes a warning, but we can easily turn that into an error. (with apologies to Martin von Löwis for not fully understanding what he did at the time :-)) Regards Antoine.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4