|
|
#
|
|
|
# rps 6/9/2014
|
|
|
# mit haystack obs
|
|
|
#
|
|
|
# wrapper for Karl's code
|
|
|
|
|
|
import DynamicObject # used for serial/deserial of complex python objects
|
|
|
import Serializer # used for serial/deserial of complex python
|
|
|
|
|
|
#
|
|
|
class DynamicSerializer:
|
|
|
#
|
|
|
#------------------------------------------------------
|
|
|
#
|
|
|
def __init__(self,which='yaml'):
|
|
|
#
|
|
|
# choices are: yaml, msgpack, hdf5, json
|
|
|
#
|
|
|
self.err_f = False
|
|
|
self.whichList = ['yaml', 'msgpack', 'hdf5', 'json'] # from Serialzer.py
|
|
|
self.err_f,self.serializer = self.initSerializer(which)
|
|
|
#
|
|
|
#------------------------------------------------------
|
|
|
#
|
|
|
def initSerializer(self,which):
|
|
|
#
|
|
|
# calls REU student code that works but hasn't been walked-through
|
|
|
# it's a dynamic serializer not strictly a yaml serializer
|
|
|
#
|
|
|
err_f = False
|
|
|
match_f = False
|
|
|
serializer = None
|
|
|
ii = 0
|
|
|
while ii < len(self.whichList):
|
|
|
if (self.whichList[ii] == which):
|
|
|
match_f = True
|
|
|
break
|
|
|
ii = ii + 1
|
|
|
# end while
|
|
|
if not match_f:
|
|
|
err_f = True
|
|
|
else:
|
|
|
serializer = which
|
|
|
serializer = Serializer.serializers[serializer]()
|
|
|
|
|
|
return err_f,serializer
|
|
|
# end initSerializer
|
|
|
#
|
|
|
# --------------------------------------------------
|
|
|
#
|
|
|
def loads(self,element): # borrows name from json module (json - to - python)
|
|
|
retval = self.serializer.fromSerial(element) # de-serialize
|
|
|
return retval
|
|
|
# end loads
|
|
|
#
|
|
|
# --------------------------------------------------
|
|
|
#
|
|
|
def dumps(self,element): # borrows name from json module (python - to - json)
|
|
|
retval = self.serializer.toSerial(element) # serialize
|
|
|
return retval
|
|
|
# end dumps
|
|
|
#
|
|
|
# --------------------------------------------------
|
|
|
#
|
|
|
# end class DynamicSerializer
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
DynamicSerializer()
|
|
|
print "DynamicSerializer ran"
|