Salome HOME
0020523: String notebook support
[modules/kernel.git] / src / KERNEL_PY / omnipatch.py
index 1f4f8d9c48239c5c0a158b382c0226fd0ff0ff14..e1534408e7978d18efb33ba492557aa02cfa55a6 100644 (file)
@@ -1,21 +1,24 @@
-# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
-#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
-# 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.
-# 
-# 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
-# 
+#  Copyright (C) 2007-2008  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.
+#
+#  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
@@ -42,6 +45,9 @@ def openModule(mname, fname=None):
 
     if mname == "CORBA":
         mod = sys.modules["omniORB.CORBA"]
+        # Salome modification start
+        shared_imported[mname]=mod
+        # Salome modification end
 
     elif sys.modules.has_key(mname):
         mod = sys.modules[mname]
@@ -50,16 +56,21 @@ def openModule(mname, fname=None):
             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):
         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" + \
@@ -103,12 +114,20 @@ def newModule(mname):
 # Function to update a module with the partial module store in the
 # partial module map
 def updateModule(mname):
+    # Salome modification start
+    # Be sure to use the right module dictionnary
+    import sys
+    # Salome modification end
     if _partialModules.has_key(mname):
         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