From b448cc54ea50daebfd8a00fdf4c7f407e9740610 2015-12-03 15:57:34 From: Miguel Valdez Date: 2015-12-03 15:57:34 Subject: [PATCH] jroplotter.py updated --- diff --git a/README b/README index 8fb2bf8..3dc3726 100644 --- a/README +++ b/README @@ -1,15 +1,21 @@ Prerequisites: +Core: -numpy 1.8.0 -scipy -math -matplotlib -h5py -ftplib - -paramiko and scp (optional for using SendTFilesToServer) - -stuffr (optional for using jroIO_hf) - -PyQt4 (for using GUI) + -paramiko (optional for SendTFilesToServer) + -stuffr (optional for jroIO_hf) -pyfits (Fits data) + +GUI: + -PyQt4 + -wxPython + -msgpack-numpy + -cPickle Signal Chain Installation: diff --git a/schainpy/model/graphics/__init__.py b/schainpy/model/graphics/__init__.py index 1e6b0c2..482c235 100644 --- a/schainpy/model/graphics/__init__.py +++ b/schainpy/model/graphics/__init__.py @@ -3,8 +3,5 @@ from jroplot_spectra import * from jroplot_heispectra import * from jroplot_correlation import * from jroplot_parameters import * -try: - from jroplotter import * -except ImportError, e: - print e +from jroplotter import * \ No newline at end of file diff --git a/schainpy/model/graphics/jroplotter.py b/schainpy/model/graphics/jroplotter.py index f343d7f..7bf5fda 100644 --- a/schainpy/model/graphics/jroplotter.py +++ b/schainpy/model/graphics/jroplotter.py @@ -72,6 +72,8 @@ class PlotterManager(Thread): Thread.__init__(self) + self.setDaemon(True) + self.__queue = plotter_queue self.plotInstanceDict = {} @@ -85,7 +87,7 @@ class PlotterManager(Thread): break if self.__queue.empty(): - sleep(0.5) + sleep(0.1) continue serial_data = self.__queue.get(True) diff --git a/schainpy/model/serializer/data.py b/schainpy/model/serializer/data.py index 5fce8c3..082480c 100644 --- a/schainpy/model/serializer/data.py +++ b/schainpy/model/serializer/data.py @@ -4,9 +4,8 @@ Created on Jul 15, 2014 @author: Miguel Urco ''' from serializer import DynamicSerializer - -PICKLE_SERIALIZER = DynamicSerializer('cPickle') -MSGPACK_SERIALIZER = DynamicSerializer('msgpack') + +DEFAULT_SERIALIZER = None #'cPickle', 'msgpack', "yaml" from schainpy.model.data.jrodata import * @@ -75,54 +74,42 @@ def dict2Obj(myDict): return myObj -def dict2Serial(myDict, serializer='msgpack'): - - if serializer == 'cPickle': - SERIALIZER = PICKLE_SERIALIZER - else: - SERIALIZER = MSGPACK_SERIALIZER - +def dict2Serial(myDict, serializer=DEFAULT_SERIALIZER): + + SERIALIZER = DynamicSerializer(serializer) + mySerial = SERIALIZER.dumps(myDict) - + return mySerial - -def serial2Dict(mySerial, serializer='msgpack'): - - if serializer == 'cPickle': - SERIALIZER = PICKLE_SERIALIZER - else: - SERIALIZER = MSGPACK_SERIALIZER - + +def serial2Dict(mySerial, serializer=DEFAULT_SERIALIZER): + + SERIALIZER = DynamicSerializer(serializer) + myDict = SERIALIZER.loads(mySerial) - + return myDict - -def obj2Serial(myObj, serializer='msgpack', **kwargs): - - if serializer == 'cPickle': - SERIALIZER = PICKLE_SERIALIZER - else: - SERIALIZER = MSGPACK_SERIALIZER - + +def obj2Serial(myObj, serializer=DEFAULT_SERIALIZER, **kwargs): + + SERIALIZER = DynamicSerializer(serializer) + myDict = obj2Dict(myObj, **kwargs) mySerial = dict2Serial(myDict, serializer) - + return mySerial - -def serial2Obj(mySerial, metadataDict = {}, serializer='msgpack'): - - if serializer == 'cPickle': - SERIALIZER = PICKLE_SERIALIZER - else: - SERIALIZER = MSGPACK_SERIALIZER - + +def serial2Obj(mySerial, metadataDict = {}, serializer=DEFAULT_SERIALIZER): + + SERIALIZER = DynamicSerializer(serializer) + myDataDict = serial2Dict(mySerial, serializer) - + if not metadataDict: myObj = dict2Obj(myDataDict) return myObj - + metadataDict.update(myDataDict) myObj = dict2Obj(metadataDict) - + return myObj diff --git a/schainpy/model/serializer/serializer.py b/schainpy/model/serializer/serializer.py index a3e6827..338daf4 100644 --- a/schainpy/model/serializer/serializer.py +++ b/schainpy/model/serializer/serializer.py @@ -4,13 +4,22 @@ Created on Jul 17, 2014 @author: roj-idl71 ''' -import cPickle -import msgpack_numpy -import jsonpickle -import yaml +DEFAULT_SERIALIZER = None -# import JROMsgpack -# import JROJsonpickle +try: + import cPickle + DEFAULT_SERIALIZER = 'cPickle' +except: + pass + +try: + import msgpack_numpy + DEFAULT_SERIALIZER = 'msgpack' +except: + pass + +# import jsonpickle +# import yaml class Serializer(object): @@ -48,42 +57,48 @@ class msgpackSerializer(Serializer): 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 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'): + def __init__(self, module = None): + if not DEFAULT_SERIALIZER: + raise ImportError, "Install a python serializer like cPickle or msgpack" + + if not mode: + mode == DEFAULT_SERIALIZER + if mode == 'cPickle': self.serializer = cPickleSerializer() - - if mode == 'jsonpickle': - self.serializer = jsonpickleSerializer() - - if mode == 'yaml': - self.serializer = yamlSerializer() +# +# if mode == 'jsonpickle': +# self.serializer = jsonpickleSerializer() +# +# if mode == 'yaml': +# self.serializer = yamlSerializer() if mode == 'msgpack': self.serializer = msgpackSerializer()