diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-06-09 13:48:51 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-08-05 14:28:27 +0200 |
commit | 39e0f799342b0b1367c96709d71bc9930e24ac6f (patch) | |
tree | 0857c2e26aba96f4619951455f1aec68d86315f7 | |
parent | cc0fd9283830fef719b1c609605eaedded85ed42 (diff) |
Add support for Python 3.11
Task-number: PYSIDE-1960
Change-Id: I180da61cf7085e9620cbec0f1832ac1332c9b9a1
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
(cherry picked from commit bc7face18376b52e99079d633da610adc5cc57ef)
-rw-r--r-- | build_scripts/config.py | 1 | ||||
-rw-r--r-- | requirements.txt | 1 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pysideqflags.cpp | 5 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pysidesignal.cpp | 5 | ||||
-rw-r--r-- | sources/shiboken2/libshiboken/basewrapper.cpp | 7 | ||||
-rw-r--r-- | sources/shiboken2/libshiboken/sbkenum.cpp | 5 |
6 files changed, 15 insertions, 9 deletions
diff --git a/build_scripts/config.py b/build_scripts/config.py index 00cbd3fc9..9bb4c6495 100644 --- a/build_scripts/config.py +++ b/build_scripts/config.py @@ -94,6 +94,7 @@ class Config(object): 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11' ] self.setup_script_dir = None diff --git a/requirements.txt b/requirements.txt index 9c25886ec..c4446454b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,6 +4,7 @@ numpy==1.16.6; python_version < '3' # setuptools from v45+ removed the support for Python 2, so we pin an old release setuptools==44.0.0; python_version < '3' setuptools; python_version >= '3' +packaging sphinx six wheel>=0.35 diff --git a/sources/pyside2/libpyside/pysideqflags.cpp b/sources/pyside2/libpyside/pysideqflags.cpp index a716cacfc..092170516 100644 --- a/sources/pyside2/libpyside/pysideqflags.cpp +++ b/sources/pyside2/libpyside/pysideqflags.cpp @@ -173,8 +173,9 @@ namespace QFlags SbkNewQFlagsType_slots[idx].pfunc = numberMethods[idx].pfunc; } newspec.slots = SbkNewQFlagsType_spec.slots; - PyTypeObject *type = (PyTypeObject *)SbkType_FromSpec(&newspec); - Py_TYPE(type) = &PyType_Type; + auto *obj = SbkType_FromSpec(&newspec); + auto *type = reinterpret_cast<PyTypeObject *>(obj); + obj->ob_type = &PyType_Type; PySideQFlagsType *flagsType = reinterpret_cast<PySideQFlagsType *>(type); PepType_PFTP(flagsType)->converterPtr = &PepType_PFTP(flagsType)->converter; diff --git a/sources/pyside2/libpyside/pysidesignal.cpp b/sources/pyside2/libpyside/pysidesignal.cpp index d426f1e7c..ef0fb98a3 100644 --- a/sources/pyside2/libpyside/pysidesignal.cpp +++ b/sources/pyside2/libpyside/pysidesignal.cpp @@ -142,9 +142,10 @@ PyTypeObject *PySideSignalTypeF(void) { static PyTypeObject *type = nullptr; if (!type) { - type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpec(&PySideSignalType_spec)); + auto *obj = SbkType_FromSpec(&PySideSignalType_spec); + type = reinterpret_cast<PyTypeObject *>(obj); PyTypeObject *hold = Py_TYPE(type); - Py_TYPE(type) = PySideMetaSignalTypeF(); + obj->ob_type = PySideMetaSignalTypeF(); Py_INCREF(Py_TYPE(type)); Py_DECREF(hold); } diff --git a/sources/shiboken2/libshiboken/basewrapper.cpp b/sources/shiboken2/libshiboken/basewrapper.cpp index 6fe665e39..fee821161 100644 --- a/sources/shiboken2/libshiboken/basewrapper.cpp +++ b/sources/shiboken2/libshiboken/basewrapper.cpp @@ -358,8 +358,9 @@ SbkObjectType *SbkObject_TypeF(void) { static PyTypeObject *type = nullptr; if (!type) { - type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpec(&SbkObject_Type_spec)); - Py_TYPE(type) = SbkObjectType_TypeF(); + auto *obj = SbkType_FromSpec(&SbkObject_Type_spec); + type = reinterpret_cast<PyTypeObject *>(obj); + obj->ob_type = SbkObjectType_TypeF(); Py_INCREF(Py_TYPE(type)); type->tp_weaklistoffset = offsetof(SbkObject, weakreflist); type->tp_dictoffset = offsetof(SbkObject, ob_dict); @@ -1151,7 +1152,7 @@ introduceWrapperType(PyObject *enclosingObject, typeSpec->slots[0].pfunc = reinterpret_cast<void *>(baseType ? baseType : SbkObject_TypeF()); PyObject *heaptype = SbkType_FromSpecWithBases(typeSpec, baseTypes); - Py_TYPE(heaptype) = SbkObjectType_TypeF(); + heaptype->ob_type = SbkObjectType_TypeF(); Py_INCREF(Py_TYPE(heaptype)); auto *type = reinterpret_cast<SbkObjectType *>(heaptype); #if PY_VERSION_HEX < 0x03000000 diff --git a/sources/shiboken2/libshiboken/sbkenum.cpp b/sources/shiboken2/libshiboken/sbkenum.cpp index 1b9628435..8678e3d5b 100644 --- a/sources/shiboken2/libshiboken/sbkenum.cpp +++ b/sources/shiboken2/libshiboken/sbkenum.cpp @@ -742,9 +742,10 @@ newTypeWithName(const char *name, static auto basetype = SbkEnum_TypeF(); Py_INCREF(basetype); PyTuple_SetItem(bases, 0, reinterpret_cast<PyObject *>(basetype)); - auto *type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpecWithBases(&newspec, bases)); + auto *obj = SbkType_FromSpecWithBases(&newspec, bases); + auto *type = reinterpret_cast<PyTypeObject *>(obj); PyErr_Print(); - Py_TYPE(type) = SbkEnumType_TypeF(); + obj->ob_type = SbkEnumType_TypeF(); auto *enumType = reinterpret_cast<SbkEnumType *>(type); PepType_SETP(enumType)->cppName = cppName; |