# -*- 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):
@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):
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)
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__()
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):
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
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)
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
pass
-class Tuple(WrappedType):
+class Tuple(WrappedType,SALOMEWrappedStdType.Tuple):
def __init__(self,varPtr,isTemporaryVar=False):
WrappedType.__init__(self,varPtr,isTemporaryVar)
self._wrapped_type=tuple
pass
-class Float(WrappedType):
+class Float(WrappedType,SALOMEWrappedStdType.Float):
def __init__(self,varPtr,isTemporaryVar=False):
WrappedType.__init__(self,varPtr,isTemporaryVar)
self._wrapped_type=float
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)
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)
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
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)
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)
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
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
""" 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
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