Salome HOME
venv directory is configured in config_appli.xml file
[modules/kernel.git] / src / SALOMESDS / SalomeSDSClt.py
index 48eac9d8c669832ff0269f2c106f6adb901cbe86..07c03f742b8428145925bc32faf3855cef625157 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # Author : Anthony Geay
 
 import SALOME
-import cPickle
+import pickle
+import SALOMEWrappedStdType
 
-class InvokatorStyle(object):
+class InvokatorStyle:
     def __init__(self,varPtr):
         self._var_ptr=varPtr
     def ptr(self):
@@ -39,7 +40,7 @@ class InvokatorPossibleStyle(InvokatorStyle):
         
     @classmethod
     def IsOK(cls,varPtr):
-        return isinstance(varPtr,SALOME._objref_PickelizedPyObjRdExtServer)
+        return isinstance(varPtr,SALOME._objref_PickelizedPyObjRdExtServer) or isinstance(varPtr,SALOME._objref_PickelizedPyObjRdWrServer)
     pass
 
 class InvokatorImpossibleStyle(InvokatorStyle):
@@ -63,7 +64,7 @@ def InvokatorStyleFactory(varPtr):
     raise Exception("InvokatorStyleFactory : unmanaged type of var (%s)!"%(type(varPtr)))
     pass
 
-class WrappedType(object):
+class WrappedType(SALOMEWrappedStdType.WrappedType):
     def __init__(self,varPtr,isTemporaryVar=False):
         assert(isinstance(varPtr,SALOME._objref_PickelizedPyObjServer))
         self._var_ptr=InvokatorStyleFactory(varPtr)
@@ -76,7 +77,7 @@ class WrappedType(object):
         return self._var_ptr.ptr()
 
     def local_copy(self):
-        return cPickle.loads(self._var_ptr.ptr().fetchSerializedContent())
+        return pickle.loads(self._var_ptr.ptr().fetchSerializedContent())
 
     def __str__(self):
         return self.local_copy().__str__()
@@ -88,9 +89,10 @@ class WrappedType(object):
         return (self._wrapped_type,(self.local_copy(),))
 
     def assign(self,elt):
-        assert(isinstance(self._var_ptr,SALOME._objref_PickelizedPyObjRdWrServer))
-        st=cPickle.dumps(elt,cPickle.HIGHEST_PROTOCOL)
-        self._var_ptr.setSerializedContent(st)
+        ptrCorba=self._var_ptr.ptr()
+        assert(isinstance(ptrCorba,SALOME._objref_PickelizedPyObjRdWrServer))
+        st=pickle.dumps(elt,pickle.HIGHEST_PROTOCOL)
+        ptrCorba.setSerializedContent(st)
         pass
 
     def __del__(self):
@@ -98,7 +100,7 @@ class WrappedType(object):
         pass
     pass
 
-class List(WrappedType):
+class List(WrappedType,SALOMEWrappedStdType.List):
     def __init__(self,varPtr,isTemporaryVar=False):
         WrappedType.__init__(self,varPtr,isTemporaryVar)
         self._wrapped_type=list
@@ -143,7 +145,7 @@ class List(WrappedType):
     def sort(self,*args):
         ret=Caller(self._var_ptr,"sort")
         return ret(*args)
-    
+    # work on local copy
     def count(self,*args):
         return self.local_copy().count(*args)
 
@@ -154,7 +156,7 @@ class List(WrappedType):
         return len(self.local_copy())
     pass
 
-class Dict(WrappedType):
+class Dict(WrappedType,SALOMEWrappedStdType.Dict):
     def __init__(self,varPtr,isTemporaryVar=False):
         WrappedType.__init__(self,varPtr,isTemporaryVar)
         self._wrapped_type=dict
@@ -223,7 +225,7 @@ class Dict(WrappedType):
 
     pass
 
-class Tuple(WrappedType):
+class Tuple(WrappedType,SALOMEWrappedStdType.Tuple):
     def __init__(self,varPtr,isTemporaryVar=False):
         WrappedType.__init__(self,varPtr,isTemporaryVar)
         self._wrapped_type=tuple
@@ -246,7 +248,7 @@ class Tuple(WrappedType):
 
     pass
 
-class Float(WrappedType):
+class Float(WrappedType,SALOMEWrappedStdType.Float):
     def __init__(self,varPtr,isTemporaryVar=False):
         WrappedType.__init__(self,varPtr,isTemporaryVar)
         self._wrapped_type=float
@@ -261,8 +263,11 @@ class Float(WrappedType):
     def __imul__(self,*args):
         return self.local_copy().__mul__(*args)
 
-    def __idiv__(self,*args):
-        return self.local_copy().__div__(*args)
+    def __itruediv__(self,*args):
+        return self.local_copy().__truediv__(*args)
+
+    def __ifloordiv__(self,*args):
+        return self.local_copy().__floordiv__(*args)
 
     def __add__(self,*args):
         return self.local_copy().__add__(*args)
@@ -273,8 +278,11 @@ class Float(WrappedType):
     def __mul__(self,*args):
         return self.local_copy().__mul__(*args)
 
-    def __div__(self,*args):
-        return self.local_copy().__div__(*args)
+    def __floordiv__(self,*args):
+        return self.local_copy().__floordiv__(*args)
+
+    def __truediv__(self,*args):
+        return self.local_copy().__truediv__(*args)
     
     def __pow__(self,*args):
         return self.local_copy().__pow__(*args)
@@ -301,7 +309,7 @@ class Float(WrappedType):
         return self.local_copy().real(*args)
     pass
 
-class Int(WrappedType):
+class Int(WrappedType,SALOMEWrappedStdType.Int):
     def __init__(self,varPtr,isTemporaryVar=False):
         WrappedType.__init__(self,varPtr,isTemporaryVar)
         self._wrapped_type=int
@@ -319,8 +327,11 @@ class Int(WrappedType):
     def __imod__(self,*args):
         return self.local_copy().__mod__(*args)
     
-    def __idiv__(self,*args):
-        return self.local_copy().__div__(*args)
+    def __itruediv__(self,*args):
+        return self.local_copy().__truediv__(*args)
+    
+    def __ifloordiv__(self,*args):
+        return self.local_copy().__floordiv__(*args)
 
     def __add__(self,*args):
         return self.local_copy().__add__(*args)
@@ -334,9 +345,12 @@ class Int(WrappedType):
     def __mod__(self,*args):
         return self.local_copy().__mod__(*args)
 
-    def __div__(self,*args):
-        return self.local_copy().__div__(*args)
-    
+    def __truediv__(self,*args):
+        return self.local_copy().__truediv__(*args)
+
+    def __floordiv__(self,*args):
+        return self.local_copy().__floordiv__(*args)
+
     def __pow__(self,*args):
         return self.local_copy().__pow__(*args)
 
@@ -359,7 +373,7 @@ class Int(WrappedType):
         return self.local_copy().real(*args)
     pass
 
-class String(WrappedType):
+class String(WrappedType,SALOMEWrappedStdType.String):
     def __init__(self,varPtr,isTemporaryVar=False):
         WrappedType.__init__(self,varPtr,isTemporaryVar)
         self._wrapped_type=int
@@ -499,7 +513,7 @@ class Caller:
         pass
 
     def __call__(self,*args):
-        ret=self._var_ptr.invokePythonMethodOn(self._meth,cPickle.dumps(args,cPickle.HIGHEST_PROTOCOL))
+        ret=self._var_ptr.invokePythonMethodOn(self._meth,pickle.dumps(args,pickle.HIGHEST_PROTOCOL))
         return GetHandlerFromRef(ret,True)
     pass
 
@@ -509,7 +523,7 @@ def GetHandlerFromRef(objCorba,isTempVar=False):
     """ Returns a client that allows to handle a remote corba ref of a global var easily.
     """
     assert(isinstance(objCorba,SALOME._objref_PickelizedPyObjServer))
-    v=cPickle.loads(objCorba.fetchSerializedContent())
+    v=pickle.loads(objCorba.fetchSerializedContent())
     if v is None:
         objCorba.UnRegister()
         return None
@@ -521,14 +535,14 @@ def CreateRdOnlyGlobalVar(value,varName,scopeName):
     salome.salome_init()
     dsm=salome.naming_service.Resolve("/DataServerManager")
     d2s,isCreated=dsm.giveADataScopeCalled(scopeName)
-    return GetHandlerFromRef(d2s.createRdOnlyVar(varName,cPickle.dumps(value,cPickle.HIGHEST_PROTOCOL)),False)
+    return GetHandlerFromRef(d2s.createRdOnlyVar(varName,pickle.dumps(value,pickle.HIGHEST_PROTOCOL)),False)
     
 def CreateRdExtGlobalVar(value,varName,scopeName):
     import salome
     salome.salome_init()
     dsm=salome.naming_service.Resolve("/DataServerManager")
     d2s,isCreated=dsm.giveADataScopeCalled(scopeName)
-    return GetHandlerFromRef(d2s.createRdExtVar(varName,cPickle.dumps(value,cPickle.HIGHEST_PROTOCOL)),False)
+    return GetHandlerFromRef(d2s.createRdExtVar(varName,pickle.dumps(value,pickle.HIGHEST_PROTOCOL)),False)
 
 def GetHandlerFromName(varName,scopeName):
     import salome