##// END OF EJS Templates
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()

File last commit:

r1167:1f521b07c958
r1279:c53fe2a4a291
Show More
testServer.py
176 lines | 3.4 KiB | text/x-python | PythonLexer
'''
Created on Jul 15, 2014
@author: roj-idl71
'''
import sys
import yaml
import numpy
import jsonpickle
# import schainpy.serializer.DynamicSerializer as DynamicSerializer
def isNotClassVar(myObj):
return not hasattr(myObj,'__dict__')
def isDictFormat(thisValue):
if type(thisValue) != type({}):
return False
if '__name__' not in list(thisValue.keys()):
return False
return True
def obj2Dict(myObj):
myDict = {}
myDict['__name__'] = myObj.__class__.__name__
for thisKey, thisValue in list(myObj.__dict__.items()):
if isNotClassVar(thisValue):
myDict[thisKey] = thisValue
continue
## If this value is another class instance
myNewDict = obj2Dict(thisValue)
myDict[thisKey] = myNewDict
return myDict
def dict2Obj(myDict):
'''
'''
if '__name__' not in list(myDict.keys()):
return None
className = eval(myDict['__name__'])
myObj = className()
for thisKey, thisValue in list(myDict.items()):
if thisKey == '__name__':
continue
if not isDictFormat(thisValue):
setattr(myObj, thisKey, thisValue)
continue
myNewObj = dict2Obj(thisValue)
setattr(myObj, thisKey, myNewObj)
return myObj
class myTestClass3(object):
def __init__(self):
'''
'''
self.y1 = 'y1'
self.y2 = 'y2'
class myTestClass2(object):
def __init__(self):
'''
'''
self.x1 = 'x1'
self.x2 = 'x2'
self.otherObj = myTestClass3()
class myTestClass(object):
flagNoData = True
value1 = 1
value2 = 2
myObj = None
def __init__(self):
'''
'''
self.flagNoData = True
self.value1 = 1
self.value2 = 2
self.myObj = myTestClass2()
def get_dtype(self):
'''
'''
return self.value1
def set_dtype(self, value):
'''
'''
self.value1 = value
dtype = property(get_dtype, set_dtype)
def myMsgPackTest():
import msgpack
import msgpack_numpy as m
import numpy as np
x = np.random.rand(5)
x_enc = m.encode(x)
x_rec = m.decode(x_enc)
print(x_rec)
#
# x_enc = msgpack.packb(x, default=m.encoder)
# x_rec = msgpack.unpackb(x_enc, object_hook=m.decoder)
if __name__ == '__main__':
myMsgPackTest()
sys.exit()
serializerObj = DynamicSerializer.DynamicSerializer('json')
serializerObj = jsonpickle
myTestObj = myTestClass()
myTestObj.flagNoData = False
myTestObj.value1 = [1+3.4j,4,'5',]
myTestObj.value2 = {'x2': numpy.complex(1,2),'x1': 'x1'}
# myTestObj.myObj.x2 = numpy.arange(15, dtype=numpy.complex)
myDict = obj2Dict(myTestObj)
myNewObj = dict2Obj(myDict)
# print myDict
# print myTestObj.__dict__
# print myNewObj.__dict__
# sys.exit()
print(myDict)
newSerial = serializerObj.encode(myDict)
# print newSerial
newDict = serializerObj.decode(newSerial)
print(newDict)
myNewObj = dict2Obj(newDict)
print()
print()
print(50*'###')
print(myTestObj.__dict__)
print(myNewObj.__dict__)