Salome HOME
bos #24412 Add missing failback for UpdateView() method
[modules/kernel.git] / src / KERNEL_PY / omnipatch.py
index 20addc6fad5a7dfeccb55e489764a666d41f33dc..76903bc15bd6554e9d05167936dc7fed6f80f9fc 100644 (file)
@@ -1,3 +1,26 @@
+#  -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
 """
   This patch of omniORB is made to make it work with multiple interpreters
   and to correct the problem of incomplete import of CORBA packages
@@ -18,30 +41,38 @@ shared_imported={}
 # Function to return a Python module for the required IDL module name
 def openModule(mname, fname=None):
     # Salome modification start
-    # Be sure to use the right module dictionnary
+    # Be sure to use the right module dictionary
     import sys
     # Salome modification end
 
     if mname == "CORBA":
         mod = sys.modules["omniORB.CORBA"]
+        # Salome modification start
+        shared_imported[mname]=mod
+        # Salome modification end
 
-    elif sys.modules.has_key(mname):
+    elif mname in sys.modules:
         mod = sys.modules[mname]
 
-        if _partialModules.has_key(mname):
+        if mname in _partialModules:
             pmod = _partialModules[mname]
             mod.__dict__.update(pmod.__dict__)
             del _partialModules[mname]
+        # Salome modification start
+        shared_imported[mname]=mod
+        # Salome modification end
 
-    elif _partialModules.has_key(mname):
+    elif mname in _partialModules:
         mod = _partialModules[mname]
 
+    # Salome modification start
+    elif shared_imported.get(mname) :
+        mod = shared_imported[mname]
+    # Salome modification end
+
     else:
         mod = newModule(mname)
 
-    # Salome modification start
-    shared_imported[mname]=mod
-    # Salome modification end
 
     if not hasattr(mod, "__doc__") or mod.__doc__ is None:
         mod.__doc__ = "omniORB IDL module " + mname + "\n\n" + \
@@ -56,7 +87,7 @@ def openModule(mname, fname=None):
 # already exist
 def newModule(mname):
     # Salome modification start
-    # Be sure to use the right module dictionnary
+    # Be sure to use the right module dictionary
     import sys
     # Salome modification end
 
@@ -67,10 +98,10 @@ def newModule(mname):
     for name in mlist:
         current = current + name
 
-        if sys.modules.has_key(current):
+        if current in sys.modules:
             mod = sys.modules[current]
 
-        elif _partialModules.has_key(current):
+        elif current in _partialModules:
             mod = _partialModules[current]
 
         else:
@@ -85,12 +116,20 @@ def newModule(mname):
 # Function to update a module with the partial module store in the
 # partial module map
 def updateModule(mname):
-    if _partialModules.has_key(mname):
+    # Salome modification start
+    # Be sure to use the right module dictionary
+    import sys
+    # Salome modification end
+    if mname in _partialModules:
         pmod = _partialModules[mname]
         mod  = sys.modules[mname]
         mod.__dict__.update(pmod.__dict__)
         del _partialModules[mname]
 
+    # Salome modification start
+    shared_imported[mname]=sys.modules[mname]
+    # Salome modification end
+
 omniORB.updateModule=updateModule
 omniORB.newModule=newModule
 omniORB.openModule=openModule