##// END OF EJS Templates
Merge with branch schain_julia_drifts from rev. 803 to 995....
Merge with branch schain_julia_drifts from rev. 803 to 995. No tested

File last commit:

r568:486c66596e4c
r568:486c66596e4c
Show More
JROSerializer.py
92 lines | 2.1 KiB | text/x-python | PythonLexer
'''
Created on Jul 17, 2014
@author: roj-idl71
'''
import cPickle
import msgpack_numpy
import jsonpickle
import yaml
# import JROMsgpack
# import JROJsonpickle
class Serializer(object):
def __init__(self):
self.serializer = None
def dumps(self, obj, **kwargs):
return self.serializer.dumps(obj, **kwargs)
def loads(self, obj, **kwargs):
return self.serializer.loads(obj, **kwargs)
class cPickleSerializer(Serializer):
def __init__(self):
self.serializer = cPickle
def dumps(self, obj, **kwargs):
return self.serializer.dumps(obj, 2)
def loads(self, obj, **kwargs):
return self.serializer.loads(obj)
class msgpackSerializer(Serializer):
def __init__(self):
self.serializer = msgpack_numpy
def dumps(self, obj, **kwargs):
return self.serializer.packb(obj)
def loads(self, obj, **kwargs):
return self.serializer.unpackb(obj)
class jsonpickleSerializer(Serializer):
def __init__(self):
self.serializer = jsonpickle
def dumps(self, obj, **kwargs):
return self.serializer.encode(obj, **kwargs)
def loads(self, obj, **kwargs):
return self.serializer.decode(obj, **kwargs)
class yamlSerializer(Serializer):
def __init__(self):
self.serializer = yaml
def dumps(self, obj, **kwargs):
return self.serializer.dump(obj, **kwargs)
def loads(self, obj, **kwargs):
return self.serializer.load(obj, **kwargs)
class DynamicSerializer(Serializer):
def __init__(self, mode = 'cPickle'):
if mode == 'cPickle':
self.serializer = cPickleSerializer()
if mode == 'jsonpickle':
self.serializer = jsonpickleSerializer()
if mode == 'yaml':
self.serializer = yamlSerializer()
if mode == 'msgpack':
self.serializer = msgpackSerializer()
if __name__ == '__main__':
pass