@@ -309,7 +309,12 @@ PythonQtImporter_load_module(PyObject *obj, PyObject *args)
309
309
}
310
310
311
311
Py_DECREF (code);
312
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
312
313
if (Py_VerboseFlag) {
314
+ #else
315
+ PyObject* verbose_flag = PySys_GetObject (" verbose" );
316
+ if (verbose_flag && PyLong_AsLong (verbose_flag) > 0 ) {
317
+ #endif
313
318
PySys_WriteStderr (" import %s # loaded from %s\n " ,
314
319
fullname, QStringToPythonConstCharPointer (fullPath));
315
320
}
@@ -556,9 +561,15 @@ void PythonQtImport::writeCompiledModule(PyCodeObject *co, const QString& filena
556
561
}
557
562
fp = open_exclusive (filename);
558
563
if (fp == nullptr ) {
559
- if (Py_VerboseFlag)
564
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
565
+ if (Py_VerboseFlag) {
566
+ #else
567
+ PyObject* verbose_flag = PySys_GetObject (" verbose" );
568
+ if (verbose_flag && PyLong_AsLong (verbose_flag) > 0 ) {
569
+ #endif
560
570
PySys_WriteStderr (
561
571
" # can't create %s\n " , QStringToPythonConstCharPointer (filename));
572
+ }
562
573
return ;
563
574
}
564
575
PyMarshal_WriteLongToFile (PyImport_GetMagicNumber (), fp, Py_MARSHAL_VERSION);
@@ -567,8 +578,14 @@ void PythonQtImport::writeCompiledModule(PyCodeObject *co, const QString& filena
567
578
PyMarshal_WriteLongToFile (sourceSize, fp, Py_MARSHAL_VERSION);
568
579
PyMarshal_WriteObjectToFile ((PyObject *)co, fp, Py_MARSHAL_VERSION);
569
580
if (ferror (fp)) {
570
- if (Py_VerboseFlag)
581
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
582
+ if (Py_VerboseFlag) {
583
+ #else
584
+ PyObject* verbose_flag = PySys_GetObject (" verbose" );
585
+ if (verbose_flag && PyLong_AsLong (verbose_flag) > 0 ) {
586
+ #endif
571
587
PySys_WriteStderr (" # can't write %s\n " , QStringToPythonConstCharPointer (filename));
588
+ }
572
589
/* Don't keep partial file */
573
590
fclose (fp);
574
591
QFile::remove (filename);
@@ -579,7 +596,12 @@ void PythonQtImport::writeCompiledModule(PyCodeObject *co, const QString& filena
579
596
PyMarshal_WriteLongToFile (mtime, fp, Py_MARSHAL_VERSION);
580
597
fflush (fp);
581
598
fclose (fp);
582
- if (Py_VerboseFlag) {
599
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
600
+ if (Py_VerboseFlag) {
601
+ #else
602
+ PyObject* verbose_flag = PySys_GetObject (" verbose" );
603
+ if (verbose_flag && PyLong_AsLong (verbose_flag) > 0 ) {
604
+ #endif
583
605
PySys_WriteStderr (" # wrote %s\n " , QStringToPythonConstCharPointer (filename));
584
606
}
585
607
}
@@ -605,9 +627,15 @@ PythonQtImport::unmarshalCode(const QString& path, const QByteArray& data, time_
605
627
}
606
628
607
629
if (getLong ((unsigned char *)buf) != PyImport_GetMagicNumber ()) {
608
- if (Py_VerboseFlag)
630
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
631
+ if (Py_VerboseFlag) {
632
+ #else
633
+ PyObject* verbose_flag = PySys_GetObject (" verbose" );
634
+ if (verbose_flag && PyLong_AsLong (verbose_flag) > 0 ) {
635
+ #endif
609
636
PySys_WriteStderr (" # %s has bad magic\n " ,
610
- QStringToPythonConstCharPointer (path));
637
+ QStringToPythonConstCharPointer (path));
638
+ }
611
639
Py_INCREF (Py_None);
612
640
return Py_None;
613
641
}
@@ -616,9 +644,15 @@ PythonQtImport::unmarshalCode(const QString& path, const QByteArray& data, time_
616
644
time_t timeDiff = getLong ((unsigned char *)buf + 4 ) - mtime;
617
645
if (timeDiff<0 ) { timeDiff = -timeDiff; }
618
646
if (timeDiff > 1 ) {
619
- if (Py_VerboseFlag)
647
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
648
+ if (Py_VerboseFlag) {
649
+ #else
650
+ PyObject* verbose_flag = PySys_GetObject (" verbose" );
651
+ if (verbose_flag && PyLong_AsLong (verbose_flag) > 0 ) {
652
+ #endif
620
653
PySys_WriteStderr (" # %s has bad mtime\n " ,
621
- QStringToPythonConstCharPointer (path));
654
+ QStringToPythonConstCharPointer (path));
655
+ }
622
656
Py_INCREF (Py_None);
623
657
return Py_None;
624
658
}
@@ -755,9 +789,15 @@ PythonQtImport::getModuleCode(PythonQtImporter *self, const char* fullname, QStr
755
789
PyObject *code = nullptr ;
756
790
test = path + zso->suffix ;
757
791
758
- if (Py_VerboseFlag > 1 )
792
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
793
+ if (Py_VerboseFlag > 1 ) {
794
+ #else
795
+ PyObject* verbose_flag = PySys_GetObject (" verbose" );
796
+ if (verbose_flag && PyLong_AsLong (verbose_flag) > 1 ) {
797
+ #endif
759
798
PySys_WriteStderr (" # trying %s\n " ,
760
799
QStringToPythonConstCharPointer (test));
800
+ }
761
801
if (PythonQt::importInterface ()->exists (test)) {
762
802
time_t mtime = 0 ;
763
803
int ispackage = zso->type & IS_PACKAGE;
@@ -864,7 +904,24 @@ void PythonQtImport::init()
864
904
mlab_searchorder[0 ].suffix [0 ] = SEP;
865
905
mlab_searchorder[1 ].suffix [0 ] = SEP;
866
906
mlab_searchorder[2 ].suffix [0 ] = SEP;
867
- if (Py_OptimizeFlag) {
907
+ #if PY_VERSION_HEX < 0x030B0000 // Python < 3.11
908
+ if (Py_OptimizeFlag) {
909
+ #else
910
+ const bool do_optimize = []() -> bool
911
+ {
912
+ PyObject* flags = PySys_GetObject (" flags" );
913
+ if (flags) {
914
+ PyObject* optimize = PyObject_GetAttrString (flags, " optimize" );
915
+ if (optimize && PyLong_AsLong (optimize) > 0 )
916
+ {
917
+ return true ;
918
+ }
919
+ Py_XDECREF (optimize);
920
+ }
921
+ return false ;
922
+ } ();
923
+ if (do_optimize) {
924
+ #endif
868
925
/* Reverse *.pyc and *.pyo */
869
926
struct st_mlab_searchorder tmp;
870
927
tmp = mlab_searchorder[0 ];
0 commit comments