##// END OF EJS Templates
Fix all PlotData, add SpectraMean, CrossSpectra plots, now Parameters extends Spectra fix bugs in ParametersProc
Fix all PlotData, add SpectraMean, CrossSpectra plots, now Parameters extends Spectra fix bugs in ParametersProc

File last commit:

r800:0ed26d7e3402
r922:d680543828ae
Show More
serializer.py
107 lines | 2.5 KiB | text/x-python | PythonLexer
'''
Created on Jul 17, 2014
@author: roj-idl71
'''
DEFAULT_SERIALIZER = None
try:
import cPickle
DEFAULT_SERIALIZER = 'cPickle'
except:
pass
try:
import msgpack_numpy
DEFAULT_SERIALIZER = 'msgpack'
except:
pass
# import jsonpickle
# import yaml
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, module = None):
if not DEFAULT_SERIALIZER:
raise ImportError, "Install a python serializer like cPickle or msgpack"
if not module:
module == DEFAULT_SERIALIZER
if module == 'cPickle':
self.serializer = cPickleSerializer()
#
# if module == 'jsonpickle':
# self.serializer = jsonpickleSerializer()
#
# if module == 'yaml':
# self.serializer = yamlSerializer()
if module == 'msgpack':
self.serializer = msgpackSerializer()
if __name__ == '__main__':
pass