From df08e03eca6b63d1979109154ede48fafc605995 Mon Sep 17 00:00:00 2001
From: Gabriel Studer <gabriel.studer@unibas.ch>
Date: Fri, 24 Jul 2020 14:03:13 +0200
Subject: [PATCH] Allow sip import in newer versions of PyQt5

---
 modules/gui/pymod/__init__.py                     | 2 --
 modules/gui/pymod/export_input.cc                 | 2 +-
 modules/gui/pymod/init_context_menu.py            | 2 --
 modules/gui/pymod/init_menubar.py                 | 1 -
 modules/gui/pymod/scene/file_loader.py            | 2 --
 modules/gui/pymod/scene/init_inspector.py         | 2 --
 modules/gui/pymod/scene/inspector_widget.py       | 1 -
 modules/gui/pymod/scene/scene_selection_helper.py | 1 -
 modules/gui/pymod/sip_handler.hh                  | 3 ++-
 9 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/modules/gui/pymod/__init__.py b/modules/gui/pymod/__init__.py
index 78c1617af..fc8d1494c 100644
--- a/modules/gui/pymod/__init__.py
+++ b/modules/gui/pymod/__init__.py
@@ -18,8 +18,6 @@
 #------------------------------------------------------------------------------
 import ost.gui.trajectory_viewer
 from ._ost_gui import *
-import sip
-
 
 ## \brief Opens a DataViewer 
 # \sa \example fft_li.py "View Fourier Transform Example" \sa \ref modulate_image.py "Modulate Image Example"
diff --git a/modules/gui/pymod/export_input.cc b/modules/gui/pymod/export_input.cc
index 06846fc98..8aec22c2b 100644
--- a/modules/gui/pymod/export_input.cc
+++ b/modules/gui/pymod/export_input.cc
@@ -30,8 +30,8 @@ namespace {
 
 object spnav_get_instance()
 {
-  static object sip_module=import("sip");
   static object pyqt5_module=import("PyQt5.QtCore");
+  static object sip_module=import("sip");
   SpnavInput* si = SpnavInput::Instance();
   if(si->isValid()) {
     return ost::gui::get_py_qobject<SpnavInput>(si);
diff --git a/modules/gui/pymod/init_context_menu.py b/modules/gui/pymod/init_context_menu.py
index 9693ef5c8..a241253f1 100644
--- a/modules/gui/pymod/init_context_menu.py
+++ b/modules/gui/pymod/init_context_menu.py
@@ -2,8 +2,6 @@ import platform
 
 from PyQt5 import QtCore, QtWidgets
 
-import sip
-
 from ost import geom, gfx, gui, seq
 from ost import settings
 from ost import LogError, mol
diff --git a/modules/gui/pymod/init_menubar.py b/modules/gui/pymod/init_menubar.py
index c245f0f3c..2c8f05c4d 100644
--- a/modules/gui/pymod/init_menubar.py
+++ b/modules/gui/pymod/init_menubar.py
@@ -19,7 +19,6 @@
 
 import sys
 from ost import gui
-import sip
 from ost import gfx
 import ost
 
diff --git a/modules/gui/pymod/scene/file_loader.py b/modules/gui/pymod/scene/file_loader.py
index adf747d10..567450218 100644
--- a/modules/gui/pymod/scene/file_loader.py
+++ b/modules/gui/pymod/scene/file_loader.py
@@ -20,9 +20,7 @@
 from ost import gui
 from ost import info
 import ost
-import sip
 import re
-
 from PyQt5 import QtCore, QtGui, QtNetwork
 from ost.gui import FileLoader
 
diff --git a/modules/gui/pymod/scene/init_inspector.py b/modules/gui/pymod/scene/init_inspector.py
index 99fea817b..f250b80ea 100644
--- a/modules/gui/pymod/scene/init_inspector.py
+++ b/modules/gui/pymod/scene/init_inspector.py
@@ -17,8 +17,6 @@
 # 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 #------------------------------------------------------------------------------
 
-import sip
-
 from ost import gui
 from ost import gfx
 from PyQt5 import QtCore
diff --git a/modules/gui/pymod/scene/inspector_widget.py b/modules/gui/pymod/scene/inspector_widget.py
index f1d98d377..5ae8b8725 100644
--- a/modules/gui/pymod/scene/inspector_widget.py
+++ b/modules/gui/pymod/scene/inspector_widget.py
@@ -19,7 +19,6 @@
 
 import sys
 from ost import gui
-import sip
 from ost import gfx
 import ost
 import os
diff --git a/modules/gui/pymod/scene/scene_selection_helper.py b/modules/gui/pymod/scene/scene_selection_helper.py
index 91686daf2..0c2d8d09a 100644
--- a/modules/gui/pymod/scene/scene_selection_helper.py
+++ b/modules/gui/pymod/scene/scene_selection_helper.py
@@ -19,7 +19,6 @@
 
 import sys
 from ost import gui
-import sip
 from ost import gfx
 import ost
 import os
diff --git a/modules/gui/pymod/sip_handler.hh b/modules/gui/pymod/sip_handler.hh
index c2f9c189a..5a37b312a 100644
--- a/modules/gui/pymod/sip_handler.hh
+++ b/modules/gui/pymod/sip_handler.hh
@@ -37,8 +37,8 @@ namespace ost { namespace gui {
 template <class O> object get_py_qobject(O* cpp_object)
 {
   if (cpp_object != NULL){
-    static object sip_module=import("sip");
     static object pyqt5_module=import("PyQt5.QtCore");
+    static object sip_module=import("sip");
     QObject* qobject = qobject_cast<QObject*>(cpp_object);
     unsigned long addr = reinterpret_cast<unsigned long>(qobject);
     object py_qobject = pyqt5_module.attr("QObject");
@@ -55,6 +55,7 @@ template <class O> O* get_cpp_qobject(object py_object)
     if(PyObject_HasAttrString(py_object.ptr(), "qobject")){
       py_object = py_object.attr("qobject");
     }
+    static object pyqt5_module=import("PyQt5.QtCore");
     static object sip_module=import("sip");
     unsigned long addr = extract<unsigned long>(sip_module.attr("unwrapinstance")(py_object));
     if(addr){
-- 
GitLab