@@ -101,7 +101,6 @@ void PythonQt::init(int flags, const QByteArray& pythonQtModuleName)
101101 _self->_p ->_pySourcelessFileLoader = importlib.getVariable (" SourcelessFileLoader" );
102102 }
103103
104- #ifdef PY3K
105104 // Import asyncio only when not explicitly disabled.
106105 // Importing asyncio on Py3.12+ pulls in ssl/_ssl; some environments/tests
107106 // want to avoid that during early embedded init.
@@ -114,7 +113,6 @@ void PythonQt::init(int flags, const QByteArray& pythonQtModuleName)
114113 _self->_p ->_pyFutureClass = asyncio.getVariable (" Future" );
115114 }
116115 }
117- #endif
118116
119117 PythonQt::priv ()->setupSharedLibrarySuffixes ();
120118
@@ -348,11 +346,7 @@ PythonQt::PythonQt(int flags, const QByteArray& pythonQtModuleName)
348346 _p->_initFlags = flags;
349347
350348 if ((flags & PythonAlreadyInitialized) == 0 ) {
351- #ifdef PY3K
352349 Py_SetProgramName (const_cast <wchar_t *>(L" PythonQt" ));
353- #else
354- Py_SetProgramName (const_cast <char *>(" PythonQt" ));
355- #endif
356350 if (flags & IgnoreSiteModule) {
357351 // this prevents the automatic importing of Python site files
358352 Py_NoSiteFlag = 1 ;
@@ -443,7 +437,6 @@ void PythonQtPrivate::setTaskDoneCallback(const PythonQtObjectPtr & callable)
443437PythonQtObjectPtr PythonQtPrivate::checkAndRunCoroutine (const PythonQtObjectPtr& object)
444438{
445439 PythonQtObjectPtr result;
446- #ifdef PY3K
447440 if (!PyCoro_CheckExact (object))
448441 {
449442 return result;
@@ -466,9 +459,6 @@ PythonQtObjectPtr PythonQtPrivate::checkAndRunCoroutine(const PythonQtObjectPtr&
466459 Py_XDECREF (methodName);
467460 }
468461 Py_XDECREF (args);
469- #else
470- Q_UNUSED (object)
471- #endif
472462 return result;
473463}
474464
@@ -1000,11 +990,7 @@ QVariant PythonQt::evalCode(PyObject* object, PyObject* pycode) {
1000990 }
1001991 PyObject* r = nullptr ;
1002992 if (dict) {
1003- #ifdef PY3K
1004993 r = PyEval_EvalCode (pycode, globals, dict);
1005- #else
1006- r = PyEval_EvalCode ((PyCodeObject*)pycode, globals, dict);
1007- #endif
1008994 }
1009995 if (r) {
1010996 result = PythonQtConv::PyObjToQVariant (r);
@@ -1264,14 +1250,7 @@ QStringList PythonQt::introspectObject(PyObject* object, ObjectType type)
12641250 keys = PyDict_Keys (object);
12651251 isDict = true ;
12661252 } else {
1267- #if defined(MEVISLAB) && !defined(PY3K)
1268- int oldPy3kWarningFlag = Py_Py3kWarningFlag;
1269- Py_Py3kWarningFlag = 0 ; // temporarily disable Python 3 warnings
12701253 keys = PyObject_Dir (object);
1271- Py_Py3kWarningFlag = oldPy3kWarningFlag;
1272- #else
1273- keys = PyObject_Dir (object);
1274- #endif
12751254 }
12761255 if (keys) {
12771256 int count = PyList_Size (keys);
@@ -1307,9 +1286,6 @@ QStringList PythonQt::introspectObject(PyObject* object, ObjectType type)
13071286 && value->ob_type != &PyModule_Type
13081287 && value->ob_type != &PyType_Type
13091288 && value->ob_type != &PythonQtSlotFunction_Type
1310- #ifndef PY3K
1311- && value->ob_type != &PyClass_Type
1312- #endif
13131289 ) {
13141290 results << keystr;
13151291 }
@@ -1662,14 +1638,9 @@ int custom_system_exit_exception_handler()
16621638// return exitcode;
16631639
16641640 PyErr_Fetch (&exception, &value, &tb);
1665- #ifndef PY3K
1666- if (Py_FlushLine ()) {
1667- PyErr_Clear ();
1668- }
1669- #else
1670- // TODO: unclear what to do, since Py_FlushLine is gone...
1671- #endif
1641+
16721642 fflush (stdout);
1643+
16731644 if (value == nullptr || value == Py_None)
16741645 goto done;
16751646 if (PyExceptionInstance_Check (value)) {
@@ -1846,7 +1817,6 @@ static PyMethodDef PythonQtMethods[] = {
18461817 {nullptr , nullptr , 0 , nullptr }
18471818};
18481819
1849- #ifdef PY3K
18501820static PyModuleDef PythonQtModuleDef = {
18511821 PyModuleDef_HEAD_INIT,
18521822 " " ,
@@ -1858,20 +1828,15 @@ static PyModuleDef PythonQtModuleDef = {
18581828 nullptr ,
18591829 nullptr
18601830};
1861- #endif
18621831
18631832void PythonQt::initPythonQtModule (bool redirectStdOut, const QByteArray& pythonQtModuleName)
18641833{
18651834 QByteArray name = " PythonQt" ;
18661835 if (!pythonQtModuleName.isEmpty ()) {
18671836 name = pythonQtModuleName;
18681837 }
1869- #ifdef PY3K
18701838 PythonQtModuleDef.m_name = name.constData ();
18711839 _p->_pythonQtModule = PyModule_Create (&PythonQtModuleDef);
1872- #else
1873- _p->_pythonQtModule = Py_InitModule (name.constData (), PythonQtMethods);
1874- #endif
18751840 _p->_pythonQtModuleName = name;
18761841
18771842 Py_INCREF ((PyObject*)&PythonQtBoolResult_Type);
@@ -1911,13 +1876,11 @@ void PythonQt::initPythonQtModule(bool redirectStdOut, const QByteArray& pythonQ
19111876 }
19121877 Py_XDECREF (old_module_names);
19131878
1914- #ifdef PY3K
19151879 PyObject* modulesAttr = PyObject_GetAttrString (sys.object (), " modules" );
19161880 PyObject* pyUnicodeObject = PyUnicode_FromString (name.constData ());
19171881 PyDict_SetItem (modulesAttr, pyUnicodeObject, _p->_pythonQtModule .object ());
19181882 Py_XDECREF (modulesAttr);
19191883 Py_XDECREF (pyUnicodeObject);
1920- #endif
19211884}
19221885
19231886bool PythonQt::redirectStdOutCallbackEnabled () const
@@ -2287,9 +2250,6 @@ bool PythonQtPrivate::isMethodDescriptor(PyObject* object) const
22872250 !PyObject_HasAttrString (object, " __set__" ) &&
22882251 !PyMethod_Check (object) &&
22892252 !PyFunction_Check (object)
2290- #ifndef PY3K
2291- && !PyClass_Check (object)
2292- #endif
22932253 ) {
22942254 return true ;
22952255 }
@@ -2651,20 +2611,12 @@ void PythonQtPrivate::shellClassDeleted( void* shellClass )
26512611
26522612PyObject* PythonQtPrivate::wrapMemoryAsBuffer ( const void * data, Py_ssize_t size )
26532613{
2654- #ifdef PY3K
26552614 return PyMemoryView_FromMemory ((char *)data, size, PyBUF_READ);
2656- #else
2657- return PyBuffer_FromMemory ((char *)data, size);
2658- #endif
26592615}
26602616
26612617PyObject* PythonQtPrivate::wrapMemoryAsBuffer ( void * data, Py_ssize_t size )
26622618{
2663- #ifdef PY3K
26642619 return PyMemoryView_FromMemory ((char *)data, size, PyBUF_WRITE);
2665- #else
2666- return PyBuffer_FromReadWriteMemory ((char *)data, size);
2667- #endif
26682620}
26692621
26702622PythonQtClassInfo* PythonQtPrivate::getClassInfo ( const QMetaObject* meta )
0 commit comments