# # 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"