Fix for Python 3.9

https://github.com/FreeCAD/FreeCAD/commit/ae641dc5278efafa22b168fc196875558b92e436

diff --git src/Base/swigpyrun_1.3.25.h src/Base/swigpyrun_1.3.25.h
index 91717210b..9ebadbc83 100644
--- src/Base/swigpyrun_1.3.25.h
+++ src/Base/swigpyrun_1.3.25.h
@@ -699,7 +699,11 @@ PySwigObject_type(void) {
     0,					/*tp_itemsize*/
     /* methods */
     (destructor)PySwigObject_dealloc,	/*tp_dealloc*/
+#if PY_VERSION_HEX < 0x03080000
     (printfunc)PySwigObject_print,	/*tp_print*/
+#else
+    0,          /*tp_vectorcall_offset*/
+#endif
     (getattrfunc)0,			/*tp_getattr*/
     (setattrfunc)0,			/*tp_setattr*/
     (cmpfunc)PySwigObject_compare,	/*tp_compare*/
@@ -859,7 +863,11 @@ PySwigPacked_type(void) {
     0,					/*tp_itemsize*/
     /* methods */
     (destructor)PySwigPacked_dealloc,	/*tp_dealloc*/
+#if PY_VERSION_HEX < 0x03080000
     (printfunc)PySwigPacked_print,	/*tp_print*/
+#else
+    0,          /*tp_vectorcall_offset*/
+#endif
     (getattrfunc)0,			/*tp_getattr*/
     (setattrfunc)0,			/*tp_setattr*/
     (cmpfunc)PySwigPacked_compare,	/*tp_compare*/
diff --git src/Base/swigpyrun_1.3.33.h src/Base/swigpyrun_1.3.33.h
index f83ac1e89..afd5a8c50 100644
--- src/Base/swigpyrun_1.3.33.h
+++ src/Base/swigpyrun_1.3.33.h
@@ -1620,7 +1620,11 @@ _PySwigObject_type(void) {
 	sizeof(PySwigObject),		    /* tp_basicsize */
 	0,			            /* tp_itemsize */
 	(destructor)PySwigObject_dealloc,   /* tp_dealloc */
+#if PY_VERSION_HEX < 0x03080000
 	(printfunc)PySwigObject_print,	    /* tp_print */
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
 #if PY_VERSION_HEX < 0x02020000
 	(getattrfunc)PySwigObject_getattr,  /* tp_getattr */ 
 #else
@@ -1790,7 +1794,11 @@ _PySwigPacked_type(void) {
 	sizeof(PySwigPacked),		    /* tp_basicsize */	
 	0,				    /* tp_itemsize */	
 	(destructor)PySwigPacked_dealloc,   /* tp_dealloc */	
+#if PY_VERSION_HEX < 0x03080000
 	(printfunc)PySwigPacked_print,	    /* tp_print */   	
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
 	(getattrfunc)0,			    /* tp_getattr */ 	
 	(setattrfunc)0,			    /* tp_setattr */ 	
 	(cmpfunc)PySwigPacked_compare,	    /* tp_compare */ 	
diff --git src/Base/swigpyrun_1.3.36.h src/Base/swigpyrun_1.3.36.h
index 02c58ad8a..12ad41e12 100644
--- src/Base/swigpyrun_1.3.36.h
+++ src/Base/swigpyrun_1.3.36.h
@@ -1628,7 +1628,12 @@ _PySwigObject_type(void) {
 	sizeof(PySwigObject),		    /* tp_basicsize */
 	0,			            /* tp_itemsize */
 	(destructor)PySwigObject_dealloc,   /* tp_dealloc */
+#if PY_VERSION_HEX < 0x03080000
 	(printfunc)PySwigObject_print,	    /* tp_print */
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
+
 #if PY_VERSION_HEX < 0x02020000
 	(getattrfunc)PySwigObject_getattr,  /* tp_getattr */ 
 #else
@@ -1798,7 +1803,11 @@ _PySwigPacked_type(void) {
 	sizeof(PySwigPacked),		    /* tp_basicsize */	
 	0,				    /* tp_itemsize */	
 	(destructor)PySwigPacked_dealloc,   /* tp_dealloc */	
+#if PY_VERSION_HEX < 0x03080000
 	(printfunc)PySwigPacked_print,	    /* tp_print */   	
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
 	(getattrfunc)0,			    /* tp_getattr */ 	
 	(setattrfunc)0,			    /* tp_setattr */ 	
 	(cmpfunc)PySwigPacked_compare,	    /* tp_compare */ 	
diff --git src/Base/swigpyrun_1.3.38.h src/Base/swigpyrun_1.3.38.h
index dae058c20..7cacc1579 100644
--- src/Base/swigpyrun_1.3.38.h
+++ src/Base/swigpyrun_1.3.38.h
@@ -1741,7 +1741,11 @@ _PySwigObject_type(void) {
 	sizeof(SwigPyObject),		    /* tp_basicsize */
 	0,			            /* tp_itemsize */
 	(destructor)SwigPyObject_dealloc,   /* tp_dealloc */
+#if PY_VERSION_HEX < 0x03080000
 	(printfunc)SwigPyObject_print,	    /* tp_print */
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
 #if PY_VERSION_HEX < 0x02020000
 	(getattrfunc)SwigPyObject_getattr,  /* tp_getattr */ 
 #else
@@ -1919,7 +1923,11 @@ _PySwigPacked_type(void) {
 	sizeof(SwigPyPacked),		    /* tp_basicsize */	
 	0,				    /* tp_itemsize */	
 	(destructor)SwigPyPacked_dealloc,   /* tp_dealloc */	
+#if PY_VERSION_HEX < 0x03080000
 	(printfunc)SwigPyPacked_print,	    /* tp_print */   	
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
 	(getattrfunc)0,			    /* tp_getattr */ 	
 	(setattrfunc)0,			    /* tp_setattr */ 	
 	(cmpfunc)SwigPyPacked_compare,	    /* tp_compare */ 	
diff --git src/Base/swigpyrun_1.3.40.h src/Base/swigpyrun_1.3.40.h
index 136ba809f..400db8b47 100644
--- src/Base/swigpyrun_1.3.40.h
+++ src/Base/swigpyrun_1.3.40.h
@@ -1766,7 +1766,11 @@ _PySwigObject_type(void) {
 	sizeof(SwigPyObject),		    /* tp_basicsize */
 	0,			            /* tp_itemsize */
 	(destructor)SwigPyObject_dealloc,   /* tp_dealloc */
+#if PY_VERSION_HEX < 0x03080000
 	(printfunc)SwigPyObject_print,	    /* tp_print */
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
 #if PY_VERSION_HEX < 0x02020000
 	(getattrfunc)SwigPyObject_getattr,  /* tp_getattr */ 
 #else
@@ -1947,8 +1951,12 @@ _PySwigPacked_type(void) {
 	(char *)"SwigPyPacked",		    /* tp_name */	
 	sizeof(SwigPyPacked),		    /* tp_basicsize */	
 	0,				    /* tp_itemsize */	
-	(destructor)SwigPyPacked_dealloc,   /* tp_dealloc */	
-	(printfunc)SwigPyPacked_print,	    /* tp_print */   	
+	(destructor)SwigPyPacked_dealloc,   /* tp_dealloc */
+#if PY_VERSION_HEX < 0x03080000
+	(printfunc)SwigPyPacked_print,	    /* tp_print */
+#else
+	0, /*tp_vectorcall_offset*/
+#endif
 	(getattrfunc)0,			    /* tp_getattr */ 	
 	(setattrfunc)0,			    /* tp_setattr */ 	
 #if PY_VERSION_HEX>=0x03000000
diff --git src/CXX/Python3/cxx_extensions.cxx src/CXX/Python3/cxx_extensions.cxx
index fb3da455f..9ff94612f 100644
--- src/CXX/Python3/cxx_extensions.cxx
+++ src/CXX/Python3/cxx_extensions.cxx
@@ -381,7 +381,11 @@ PythonType::PythonType( size_t basic_size, int itemsize, const char *default_nam
 
     // Methods to implement standard operations
     table->tp_dealloc = (destructor)standard_dealloc;
+#if PY_VERSION_HEX < 0x03080000
     table->tp_print = 0;
+#else
+    table->tp_vectorcall_offset = 0;
+#endif
     table->tp_getattr = 0;
     table->tp_setattr = 0;
     table->tp_repr = 0;
@@ -524,7 +528,9 @@ PythonType &PythonType::supportClass()
 #ifdef PYCXX_PYTHON_2TO3
 PythonType &PythonType::supportPrint()
 {
+#if PY_VERSION_HEX < 0x03080000
     table->tp_print = print_handler;
+#endif
     return *this;
 }
 #endif