aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-06-09 13:48:51 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-08-05 14:28:27 +0200
commit39e0f799342b0b1367c96709d71bc9930e24ac6f (patch)
tree0857c2e26aba96f4619951455f1aec68d86315f7
parentcc0fd9283830fef719b1c609605eaedded85ed42 (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.py1
-rw-r--r--requirements.txt1
-rw-r--r--sources/pyside2/libpyside/pysideqflags.cpp5
-rw-r--r--sources/pyside2/libpyside/pysidesignal.cpp5
-rw-r--r--sources/shiboken2/libshiboken/basewrapper.cpp7
-rw-r--r--sources/shiboken2/libshiboken/sbkenum.cpp5
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;