cpython/Lib/test/test_cext
Petr Viktorin c7d24b81c3
gh-111506: Add _Py_OPAQUE_PYOBJECT to hide PyObject layout & related API (GH-136505)
Allow Py_LIMITED_API for (Py_GIL_DISABLED && _Py_OPAQUE_PYOBJECT)


API that's removed when _Py_OPAQUE_PYOBJECT is defined:

    - PyObject_HEAD
    - _PyObject_EXTRA_INIT
    - PyObject_HEAD_INIT
    - PyObject_VAR_HEAD
    - struct _object (i.e. PyObject) (opaque)
    - struct PyVarObject (opaque)
    - Py_SIZE
    - Py_SET_TYPE
    - Py_SET_SIZE
    - PyModuleDef_Base (opaque)
    - PyModuleDef_HEAD_INIT
    - PyModuleDef (opaque)
    - _Py_IsImmortal
    - _Py_IsStaticImmortal

Note that the `_Py_IsImmortal` removal (and a few other issues)
 means _Py_OPAQUE_PYOBJECT only works with limited
API 3.14+ now.


Co-authored-by: Victor Stinner <vstinner@python.org>
2025-07-12 09:55:12 +02:00
..
__init__.py gh-111506: Add _Py_OPAQUE_PYOBJECT to hide PyObject layout & related API (GH-136505) 2025-07-12 09:55:12 +02:00
create_moduledef.c gh-111506: Add _Py_OPAQUE_PYOBJECT to hide PyObject layout & related API (GH-136505) 2025-07-12 09:55:12 +02:00
extension.c gh-111506: Add _Py_OPAQUE_PYOBJECT to hide PyObject layout & related API (GH-136505) 2025-07-12 09:55:12 +02:00
setup.py gh-111506: Add _Py_OPAQUE_PYOBJECT to hide PyObject layout & related API (GH-136505) 2025-07-12 09:55:12 +02:00