mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-21 20:55:11 +00:00
fix: make_static_property_type() (#4971)
Update make_static_property_type() to make it compatible with Python 3.13: set Py_TPFLAGS_MANAGED_DICT flag before calling PyType_Ready().
This commit is contained in:
parent
68322895df
commit
7d538a4275
@ -86,17 +86,16 @@ inline PyTypeObject *make_static_property_type() {
|
|||||||
type->tp_descr_get = pybind11_static_get;
|
type->tp_descr_get = pybind11_static_get;
|
||||||
type->tp_descr_set = pybind11_static_set;
|
type->tp_descr_set = pybind11_static_set;
|
||||||
|
|
||||||
if (PyType_Ready(type) < 0) {
|
|
||||||
pybind11_fail("make_static_property_type(): failure in PyType_Ready()!");
|
|
||||||
}
|
|
||||||
|
|
||||||
# if PY_VERSION_HEX >= 0x030C0000
|
# if PY_VERSION_HEX >= 0x030C0000
|
||||||
// PRE 3.12 FEATURE FREEZE. PLEASE REVIEW AFTER FREEZE.
|
|
||||||
// Since Python-3.12 property-derived types are required to
|
// Since Python-3.12 property-derived types are required to
|
||||||
// have dynamic attributes (to set `__doc__`)
|
// have dynamic attributes (to set `__doc__`)
|
||||||
enable_dynamic_attributes(heap_type);
|
enable_dynamic_attributes(heap_type);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
if (PyType_Ready(type) < 0) {
|
||||||
|
pybind11_fail("make_static_property_type(): failure in PyType_Ready()!");
|
||||||
|
}
|
||||||
|
|
||||||
setattr((PyObject *) type, "__module__", str("pybind11_builtins"));
|
setattr((PyObject *) type, "__module__", str("pybind11_builtins"));
|
||||||
PYBIND11_SET_OLDPY_QUALNAME(type, name_obj);
|
PYBIND11_SET_OLDPY_QUALNAME(type, name_obj);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user