##// END OF EJS Templates
merged branches
merged branches

File last commit:

r1370:81f892b894eb merge
r1370:81f892b894eb merge
Show More
controller.py
918 lines | 25.5 KiB | text/x-python | PythonLexer
Juan C. Espinoza
Add license, update setup and changelog
r1329 # Copyright (c) 2012-2020 Jicamarca Radio Observatory
# All rights reserved.
#
# Distributed under the terms of the BSD 3-clause license.
"""API to create signal chain projects
The API is provide through class: Project
"""
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287
import re
Miguel Valdez
Version: 2.1.3.2...
r672 import sys
Julio Valdez
First Draft HDF5 IO module
r514 import ast
Miguel Valdez
GUI: minor changes
r687 import datetime
Miguel Valdez
Version: 2.1.3.2...
r672 import traceback
José Chávez
finishing day, need testing
r931 import time
Add python 3.8 compatibility with macOs
r1342 import multiprocessing
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 from multiprocessing import Process, Queue
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 from threading import Thread
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 from xml.etree.ElementTree import ElementTree, Element, SubElement
George Yong
Multiprocessing for Spectra (all operation) working
r1171
Now alarm is a process, add SchainWarning exception for handling non-stop exceptions
r1129 from schainpy.admin import Alarm, SchainWarning
George Yong
Multiprocessing for heispectra (Fits) all working
r1191 from schainpy.model import *
Juan C. Espinoza
Change multiSchain by MPProject
r1052 from schainpy.utils import log
George Yong
Multiprocessing for heispectra (Fits) all working
r1191
Add python 3.8 compatibility with macOs
r1342 if 'darwin' in sys.platform and sys.version_info[0] == 3 and sys.version_info[1] > 7:
multiprocessing.set_start_method('fork')
Juan C. Espinoza
Change multiSchain by MPProject
r1052
DTYPES = {
'Voltage': '.r',
'Spectra': '.pdata'
}
José Chávez
formatting
r1082
Juan C. Espinoza
Change multiSchain by MPProject
r1052 def MPProject(project, n=cpu_count()):
'''
Project wrapper to run schain in n processes
'''
rconf = project.getReadUnitObj()
op = rconf.getOperationObj('run')
dt1 = op.getParameterValue('startDate')
dt2 = op.getParameterValue('endDate')
Juan C. Espinoza
set new matplotlib version in setup, improved searchFiles for multiprocessing
r1112 tm1 = op.getParameterValue('startTime')
tm2 = op.getParameterValue('endTime')
add multiSchain (@jchavez)
r892 days = (dt2 - dt1).days
José Chávez
formatting
r1082
for day in range(days + 1):
add multiSchain (@jchavez)
r892 skip = 0
cursor = 0
processes = []
Juan C. Espinoza
Change multiSchain by MPProject
r1052 dt = dt1 + datetime.timedelta(day)
dt_str = dt.strftime('%Y/%m/%d')
reader = JRODataReader()
paths, files = reader.searchFilesOffLine(path=rconf.path,
José Chávez
formatting
r1082 startDate=dt,
endDate=dt,
Juan C. Espinoza
set new matplotlib version in setup, improved searchFiles for multiprocessing
r1112 startTime=tm1,
endTime=tm2,
José Chávez
formatting
r1082 ext=DTYPES[rconf.datatype])
Juan C. Espinoza
Change multiSchain by MPProject
r1052 nFiles = len(files)
if nFiles == 0:
Juan C. Espinoza
Update setup.py and README
r999 continue
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 skip = int(math.ceil(nFiles / n))
José Chávez
formatting
r1082 while nFiles > cursor * skip:
rconf.update(startDate=dt_str, endDate=dt_str, cursor=cursor,
skip=skip)
p = project.clone()
Juan C. Espinoza
Change multiSchain by MPProject
r1052 p.start()
processes.append(p)
José Chávez
exiting processes properly
r924 cursor += 1
def beforeExit(exctype, value, trace):
add multiSchain (@jchavez)
r892 for process in processes:
process.terminate()
process.join()
George Yong
Python 2to3, Spectra (all operations) working
r1167 print(traceback.print_tb(trace))
Juan C. Espinoza
Now there are two receiver units one for data and one for plots
r957
José Chávez
exiting processes properly
r924 sys.excepthook = beforeExit
add multiSchain (@jchavez)
r892
for process in processes:
process.join()
José Chávez
exiting processes properly
r924 process.terminate()
J Gomez
antes de la nueva 2.3
r958
José Chávez
finishing day, need testing
r931 time.sleep(3)
add multiSchain (@jchavez)
r892
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 def wait(context):
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 time.sleep(1)
c = zmq.Context()
receiver = c.socket(zmq.SUB)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 receiver.connect('ipc:///tmp/schain_{}_pub'.format(self.id))
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 receiver.setsockopt(zmq.SUBSCRIBE, self.id.encode())
msg = receiver.recv_multipart()[1]
context.terminate()
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 class ParameterConf():
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 id = None
name = None
value = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 format = None
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 __formated_value = None
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 ELEMENTNAME = 'Parameter'
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def __init__(self):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.format = 'str'
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def getElementName(self):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 return self.ELEMENTNAME
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def getValue(self):
Miguel Valdez
Signal Chain GUI...
r600
value = self.value
format = self.format
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 if self.__formated_value != None:
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
add multiSchain (@jchavez)
r892 if format == 'obj':
return value
Miguel Valdez
Signal Chain GUI...
r600 if format == 'str':
Miguel Valdez
Signal Chain GUI v2.1
r596 self.__formated_value = str(value)
return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 if value == '':
George Yong
Python 2to3, Spectra (all operations) working
r1167 raise ValueError('%s: This parameter value is empty' % self.name)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if format == 'list':
Juan C. Espinoza
Review decorator logic for ending process
r1193 strList = [s.strip() for s in value.split(',')]
Miguel Valdez
controller.py: Some comments added
r529 self.__formated_value = strList
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if format == 'intlist':
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
Miguel Valdez
Some comments added to controller.py
r535 Example:
value = (0,1,2)
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 new_value = ast.literal_eval(value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 if type(new_value) not in (tuple, list):
new_value = [int(new_value)]
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 self.__formated_value = new_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if format == 'floatlist':
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
Miguel Valdez
Some comments added to controller.py
r535 Example:
value = (0.5, 1.4, 2.7)
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 new_value = ast.literal_eval(value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 if type(new_value) not in (tuple, list):
new_value = [float(new_value)]
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Bug fixed in controller.py when floatList is used
r741 self.__formated_value = new_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if format == 'date':
Miguel Valdez
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'
r224 strList = value.split('/')
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 intList = [int(x) for x in strList]
date = datetime.date(intList[0], intList[1], intList[2])
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 self.__formated_value = date
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if format == 'time':
Miguel Valdez
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'
r224 strList = value.split(':')
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 intList = [int(x) for x in strList]
time = datetime.time(intList[0], intList[1], intList[2])
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 self.__formated_value = time
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if format == 'pairslist':
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
Daniel Valdez
La clase ParameterConf() evalua el valor de entrada como pairslist
r226 Example:
value = (0,1),(1,2)
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
Daniel Valdez
La clase ParameterConf() evalua el valor de entrada como pairslist
r226
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 new_value = ast.literal_eval(value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 if type(new_value) not in (tuple, list):
George Yong
Python 2to3, Spectra (all operations) working
r1167 raise ValueError('%s has to be a tuple or list of pairs' % value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 if type(new_value[0]) not in (tuple, list):
if len(new_value) != 2:
George Yong
Python 2to3, Spectra (all operations) working
r1167 raise ValueError('%s has to be a tuple or list of pairs' % value)
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 new_value = [new_value]
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 for thisPair in new_value:
if len(thisPair) != 2:
George Yong
Python 2to3, Spectra (all operations) working
r1167 raise ValueError('%s has to be a tuple or list of pairs' % value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 self.__formated_value = new_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if format == 'multilist':
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
Julio Valdez
First Draft HDF5 IO module
r514 Example:
value = (0,1,2),(3,4,5)
Juan C. Espinoza
Change multiSchain by MPProject
r1052 '''
Julio Valdez
First Draft HDF5 IO module
r514 multiList = ast.literal_eval(value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 if type(multiList[0]) == int:
Juan C. Espinoza
Change multiSchain by MPProject
r1052 multiList = ast.literal_eval('(' + value + ')')
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 self.__formated_value = multiList
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Bug fixed: translating float values to integer
r677 if format == 'bool':
value = int(value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Bug fixed: translating float values to integer
r677 if format == 'int':
value = float(value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI...
r600 format_func = eval(format)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 self.__formated_value = format_func(value)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: Some comments added
r529 return self.__formated_value
Miguel Valdez
Signal Chain GUI v2.1
r596
def updateId(self, new_id):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 self.id = str(new_id)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 def setup(self, id, name, value, format='str'):
Miguel Valdez
Signal Chain GUI v2.1
r596 self.id = str(id)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.name = name
add multiSchain (@jchavez)
r892 if format == 'obj':
self.value = value
else:
self.value = str(value)
Miguel Valdez
Some comments added to controller.py
r535 self.format = str.lower(format)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 self.getValue()
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Bugs fixed in Signal Chain GUI:...
r643 return 1
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r577 def update(self, name, value, format='str'):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r577 self.name = name
self.value = str(value)
self.format = format
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def makeXml(self, opElement):
José Chávez
funcionando todo
r898 if self.name not in ('queue',):
parmElement = SubElement(opElement, self.ELEMENTNAME)
parmElement.set('id', str(self.id))
parmElement.set('name', self.name)
parmElement.set('value', self.value)
parmElement.set('format', self.format)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def readXml(self, parmElement):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.id = parmElement.get('id')
self.name = parmElement.get('name')
self.value = parmElement.get('value')
Miguel Valdez
Merge with branch schain_julia_drifts from rev. 803 to 995....
r568 self.format = str.lower(parmElement.get('format'))
ReceiverData Operation, test PlotData
r889
José Chávez
formatting
r1082 # Compatible with old signal chain version
Miguel Valdez
Merge with branch schain_julia_drifts from rev. 803 to 995....
r568 if self.format == 'int' and self.name == 'idfigure':
self.name = 'id'
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def printattr(self):
ReceiverData Operation, test PlotData
r889
George Yong
Fix Read function for CLI 'schain xml'
r1184 print('Parameter[%s]: name = %s, value = %s, format = %s, project_id = %s' % (self.id, self.name, self.value, self.format, self.project_id))
José Chávez
formatting
r1082
Juan C. Espinoza
Change multiSchain by MPProject
r1052 class OperationConf():
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 ELEMENTNAME = 'Operation'
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def __init__(self):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-USRP Reader was added to Signal Chain GUI...
r589 self.id = '0'
Miguel Valdez
Merge with branch schain_julia_drifts from rev. 803 to 995....
r568 self.name = None
self.priority = None
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.parameters = {}
self.object = None
self.operations = []
Miguel Valdez
Signal Chain GUI v2.1
r596
George Yong
Multiprocessing for Spectra (all operation) working
r1171 def getId(self):
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287
George Yong
Multiprocessing for Spectra (all operation) working
r1171 return self.id
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def getNewId(self):
return int(self.id) * 10 + len(self.operations) + 1
George Yong
Multiprocessing for Spectra (all operation) working
r1171
Miguel Valdez
Signal Chain GUI v2.1
r596 def updateId(self, new_id):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 self.id = str(new_id)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 n = 1
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for conf in self.operations:
conf_id = str(int(new_id) * 10 + n)
conf.updateId(conf_id)
Miguel Valdez
Signal Chain GUI v2.1
r596 n += 1
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def getKwargs(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 params = {}
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for key, value in self.parameters.items():
if value not in (None, '', ' '):
params[key] = value
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return params
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def update(self, **kwargs):
Miguel Valdez
r577
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for key, value in kwargs.items():
self.addParameter(name=key, value=value)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def addParameter(self, name, value, format=None):
'''
'''
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 if isinstance(value, str) and re.search(r'(\d+/\d+/\d+)', value):
self.parameters[name] = datetime.date(*[int(x) for x in value.split('/')])
elif isinstance(value, str) and re.search(r'(\d+:\d+:\d+)', value):
self.parameters[name] = datetime.time(*[int(x) for x in value.split(':')])
else:
try:
self.parameters[name] = ast.literal_eval(value)
except:
if isinstance(value, str) and ',' in value:
self.parameters[name] = value.split(',')
else:
self.parameters[name] = value
def getParameters(self):
params = {}
for key, value in self.parameters.items():
s = type(value).__name__
if s == 'date':
params[key] = value.strftime('%Y/%m/%d')
elif s == 'time':
params[key] = value.strftime('%H:%M:%S')
else:
params[key] = str(value)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return params
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def makeXml(self, element):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 xml = SubElement(element, self.ELEMENTNAME)
for label in self.xml_labels:
xml.set(label, str(getattr(self, label)))
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for key, value in self.getParameters().items():
xml_param = SubElement(xml, 'Parameter')
xml_param.set('name', key)
xml_param.set('value', value)
José Chávez
formatting
r1082
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for conf in self.operations:
conf.makeXml(xml)
José Chávez
formatting
r1082
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def __str__(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 if self.ELEMENTNAME == 'Operation':
s = ' {}[id={}]\n'.format(self.name, self.id)
else:
s = '{}[id={}, inputId={}]\n'.format(self.name, self.id, self.inputId)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for key, value in self.parameters.items():
if self.ELEMENTNAME == 'Operation':
s += ' {}: {}\n'.format(key, value)
else:
s += ' {}: {}\n'.format(key, value)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for conf in self.operations:
s += str(conf)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return s
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 class OperationConf(ConfBase):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 ELEMENTNAME = 'Operation'
xml_labels = ['id', 'name']
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def setup(self, id, name, priority, project_id, err_queue):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 self.id = str(id)
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 self.project_id = project_id
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.name = name
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.type = 'other'
Errors handling and gracefully terminate main process
r1241 self.err_queue = err_queue
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def readXml(self, element, project_id, err_queue):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.id = element.get('id')
self.name = element.get('name')
self.type = 'other'
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 self.project_id = str(project_id)
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.err_queue = err_queue
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for elm in element.iter('Parameter'):
self.addParameter(elm.get('name'), elm.get('value'))
ReceiverData Operation, test PlotData
r889
George Yong
Multiprocessing for Spectra (all operation) working
r1171 def createObject(self):
ReceiverData Operation, test PlotData
r889
George Yong
Multiprocessing for Spectra (all operation) working
r1171 className = eval(self.name)
George Yong
Fix Read function for CLI 'schain xml'
r1184
Juan C. Espinoza
Update plots modules
r1308 if 'Plot' in self.name or 'Writer' in self.name or 'Send' in self.name or 'print' in self.name:
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 kwargs = self.getKwargs()
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 opObj = className(self.id, self.id, self.project_id, self.err_queue, **kwargs)
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 opObj.start()
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.type = 'external'
else:
opObj = className()
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.object = opObj
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 return opObj
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 class ProcUnitConf(ConfBase):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 ELEMENTNAME = 'ProcUnit'
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 xml_labels = ['id', 'inputId', 'name']
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def setup(self, project_id, id, name, datatype, inputId, err_queue):
George Yong
Multiprocessing for Spectra (all operation) working
r1171 '''
'''
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
José Chávez
formatting
r1082 if datatype == None and name == None:
George Yong
Python 2to3, Spectra (all operations) working
r1167 raise ValueError('datatype or name should be defined')
ReceiverData Operation, test PlotData
r889
José Chávez
formatting
r1082 if name == None:
Miguel Valdez
Signal Chain GUI v2.1
r596 if 'Proc' in datatype:
name = datatype
else:
José Chávez
formatting
r1082 name = '%sProc' % (datatype)
ReceiverData Operation, test PlotData
r889
José Chávez
formatting
r1082 if datatype == None:
datatype = name.replace('Proc', '')
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 self.id = str(id)
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 self.project_id = project_id
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.name = name
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = datatype
Errors handling and gracefully terminate main process
r1241 self.inputId = inputId
self.err_queue = err_queue
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.operations = []
self.parameters = {}
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def removeOperation(self, id):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 i = [1 if x.id==id else 0 for x in self.operations]
self.operations.pop(i.index(1))
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def getOperation(self, id):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for conf in self.operations:
if conf.id == id:
return conf
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 def addOperation(self, name, optype='self'):
George Yong
Multiprocessing for Spectra (all operation) working
r1171 '''
'''
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 id = self.getNewId()
conf = OperationConf()
conf.setup(id, name=name, priority='0', project_id=self.project_id, err_queue=self.err_queue)
self.operations.append(conf)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return conf
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def readXml(self, element, project_id, err_queue):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.id = element.get('id')
self.name = element.get('name')
self.inputId = None if element.get('inputId') == 'None' else element.get('inputId')
self.datatype = element.get('datatype', self.name.replace(self.ELEMENTNAME.replace('Unit', ''), ''))
George Yong
Fix Read function for CLI 'schain xml'
r1184 self.project_id = str(project_id)
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.err_queue = err_queue
self.operations = []
self.parameters = {}
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for elm in element:
if elm.tag == 'Parameter':
self.addParameter(elm.get('name'), elm.get('value'))
elif elm.tag == 'Operation':
conf = OperationConf()
conf.readXml(elm, project_id, err_queue)
self.operations.append(conf)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 def createObjects(self):
George Yong
Multiprocessing for Spectra (all operation) working
r1171 '''
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 Instancia de unidades de procesamiento.
George Yong
Multiprocessing for Spectra (all operation) working
r1171 '''
George Yong
Multiprocessing for digitalRF just for reading Unit(Task #1461 )
r1192
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 className = eval(self.name)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 #print(self.name)
ReceiverData Operation, test PlotData
r889 kwargs = self.getKwargs()
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 procUnitObj = className()
procUnitObj.name = self.name
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 log.success('creating process...', self.name)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for conf in self.operations:
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 opObj = conf.createObject()
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Errors handling and gracefully terminate main process
r1241 log.success('adding operation: {}, type:{}'.format(
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 conf.name,
conf.type), self.name)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 procUnitObj.addOperation(conf, opObj)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.object = procUnitObj
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def run(self):
'''
'''
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return self.object.call(**self.getKwargs())
ReceiverData Operation, test PlotData
r889
José Chávez
formatting
r1082
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 class ReadUnitConf(ProcUnitConf):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 ELEMENTNAME = 'ReadUnit'
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def __init__(self):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.id = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = None
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.name = None
Miguel Valdez
-USRP Reader was added to Signal Chain GUI...
r589 self.inputId = None
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.operations = []
self.parameters = {}
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Errors handling and gracefully terminate main process
r1241 def setup(self, project_id, id, name, datatype, err_queue, path='', startDate='', endDate='',
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 startTime='', endTime='', server=None, **kwargs):
Juan C. Espinoza
Change multiSchain by MPProject
r1052
José Chávez
formatting
r1082 if datatype == None and name == None:
George Yong
Python 2to3, Spectra (all operations) working
r1167 raise ValueError('datatype or name should be defined')
Juan C. Espinoza
Fix name and datatype in ReadUnitConf
r1088 if name == None:
Miguel Valdez
Signal Chain GUI v2.1
r596 if 'Reader' in datatype:
name = datatype
Juan C. Espinoza
Fix name and datatype in ReadUnitConf
r1088 datatype = name.replace('Reader','')
Miguel Valdez
Signal Chain GUI v2.1
r596 else:
Juan C. Espinoza
Fix name and datatype in ReadUnitConf
r1088 name = '{}Reader'.format(datatype)
if datatype == None:
if 'Reader' in name:
datatype = name.replace('Reader','')
else:
datatype = name
name = '{}Reader'.format(name)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.id = id
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 self.project_id = project_id
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.name = name
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = datatype
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 self.err_queue = err_queue
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.addParameter(name='path', value=path)
self.addParameter(name='startDate', value=startDate)
self.addParameter(name='endDate', value=endDate)
self.addParameter(name='startTime', value=startTime)
self.addParameter(name='endTime', value=endTime)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for key, value in kwargs.items():
self.addParameter(name=key, value=value)
ReceiverData Operation, test PlotData
r889
José Chávez
formatting
r1082
José Chávez
merge
r1040 class Project(Process):
Juan C. Espinoza
Add license, update setup and changelog
r1329 """API to create signal chain projects"""
Juan C. Espinoza
Change multiSchain by MPProject
r1052
Miguel Valdez
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'
r224 ELEMENTNAME = 'Project'
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Beta version!
r1330 def __init__(self, name=''):
Juan C. Espinoza
Change multiSchain by MPProject
r1052
José Chávez
merge
r1040 Process.__init__(self)
Juan C. Espinoza
Add license, update setup and changelog
r1329 self.id = '1'
if name:
self.name = '{} ({})'.format(Process.__name__, name)
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 self.filename = None
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.description = None
Juan C. Espinoza
test alarm
r1126 self.email = None
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.alarm = []
self.configurations = {}
# self.err_queue = Queue()
self.err_queue = None
self.started = False
Juan C. Espinoza
Change multiSchain by MPProject
r1052
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def getNewId(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 idList = list(self.configurations.keys())
José Chávez
formatting
r1082 id = int(self.id) * 10
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r764 while True:
id += 1
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r764 if str(id) in idList:
continue
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r764 break
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 return str(id)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 def updateId(self, new_id):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 self.id = str(new_id)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 keyList = list(self.configurations.keys())
Miguel Valdez
Signal Chain GUI v2.1
r596 keyList.sort()
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 n = 1
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 new_confs = {}
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 for procKey in keyList:
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 conf = self.configurations[procKey]
José Chávez
formatting
r1082 idProcUnit = str(int(self.id) * 10 + n)
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 conf.updateId(idProcUnit)
new_confs[idProcUnit] = conf
Miguel Valdez
Signal Chain GUI v2.1
r596 n += 1
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.configurations = new_confs
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 def setup(self, id=1, name='', description='', email=None, alarm=[]):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI v2.1
r596 self.id = str(id)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 self.description = description
Juan C. Espinoza
test alarm
r1126 self.email = email
self.alarm = alarm
Errors handling and gracefully terminate main process
r1241 if name:
self.name = '{} ({})'.format(Process.__name__, name)
Miguel Valdez
r577
Juan C. Espinoza
test alarm
r1126 def update(self, **kwargs):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for key, value in kwargs.items():
Juan C. Espinoza
test alarm
r1126 setattr(self, key, value)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Change multiSchain by MPProject
r1052 def clone(self):
p = Project()
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 p.id = self.id
p.name = self.name
p.description = self.description
p.configurations = self.configurations.copy()
Juan C. Espinoza
Change multiSchain by MPProject
r1052 return p
Miguel Valdez
GUI: minor changes
r687 def addReadUnit(self, id=None, datatype=None, name=None, **kwargs):
Juan C. Espinoza
Change multiSchain by MPProject
r1052
George Yong
Multiprocessing for Spectra (all operation) working
r1171 '''
'''
Miguel Valdez
GUI: minor changes
r687 if id is None:
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 idReadUnit = self.getNewId()
Miguel Valdez
GUI: minor changes
r687 else:
idReadUnit = str(id)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 conf = ReadUnitConf()
conf.setup(self.id, idReadUnit, name, datatype, self.err_queue, **kwargs)
self.configurations[conf.id] = conf
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return conf
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def addProcUnit(self, id=None, inputId='0', datatype=None, name=None):
ReceiverData Operation, test PlotData
r889
George Yong
Multiprocessing for Spectra (all operation) working
r1171 '''
'''
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 if id is None:
idProcUnit = self.getNewId()
else:
idProcUnit = id
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 conf = ProcUnitConf()
conf.setup(self.id, idProcUnit, name, datatype, inputId, self.err_queue)
self.configurations[conf.id] = conf
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return conf
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Signal Chain GUI updated:...
r587 def removeProcUnit(self, id):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 if id in self.configurations:
self.configurations.pop(id)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def getReadUnit(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for obj in list(self.configurations.values()):
if obj.ELEMENTNAME == 'ReadUnit':
Miguel Valdez
r577 return obj
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r577 return None
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def getProcUnit(self, id):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return self.configurations[id]
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def getUnits(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 keys = list(self.configurations)
keys.sort()
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for key in keys:
yield self.configurations[key]
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def updateUnit(self, id, **kwargs):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 conf = self.configurations[id].update(**kwargs)
ReceiverData Operation, test PlotData
r889
def makeXml(self):
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 xml = Element('Project')
xml.set('id', str(self.id))
xml.set('name', self.name)
xml.set('description', self.description)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 for conf in self.configurations.values():
conf.makeXml(xml)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.xml = xml
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: minor changes
r702 def writeXml(self, filename=None):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: minor changes
r702 if filename == None:
Miguel Valdez
v2.2.0: Controller updated
r708 if self.filename:
filename = self.filename
else:
Juan C. Espinoza
Change multiSchain by MPProject
r1052 filename = 'schain.xml'
ReceiverData Operation, test PlotData
r889
Miguel Valdez
controller.py: minor changes
r702 if not filename:
George Yong
Python 2to3, Spectra (all operations) working
r1167 print('filename has not been defined. Use setFilename(filename) for do it.')
Miguel Valdez
controller.py: minor changes
r702 return 0
ReceiverData Operation, test PlotData
r889
Miguel Valdez
GUI: minor changes
r687 abs_file = os.path.abspath(filename)
ReceiverData Operation, test PlotData
r889
Miguel Valdez
GUI: minor changes
r687 if not os.access(os.path.dirname(abs_file), os.W_OK):
George Yong
Python 2to3, Spectra (all operations) working
r1167 print('No write permission on %s' % os.path.dirname(abs_file))
Miguel Valdez
r681 return 0
ReceiverData Operation, test PlotData
r889
Miguel Valdez
GUI: minor changes
r687 if os.path.isfile(abs_file) and not(os.access(abs_file, os.W_OK)):
George Yong
Python 2to3, Spectra (all operations) working
r1167 print('File %s already exists and it could not be overwriten' % abs_file)
Miguel Valdez
r681 return 0
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r681 self.makeXml()
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 ElementTree(self.xml).write(abs_file, method='xml')
ReceiverData Operation, test PlotData
r889
Miguel Valdez
v2.2.0: Controller updated
r708 self.filename = abs_file
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r681 return 1
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def readXml(self, filename):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
GUI: minor changes
r687 abs_file = os.path.abspath(filename)
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.configurations = {}
ReceiverData Operation, test PlotData
r889
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 try:
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.xml = ElementTree().parse(abs_file)
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 except:
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 log.error('Error reading %s, verify file format' % filename)
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735 return 0
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.id = self.xml.get('id')
self.name = self.xml.get('name')
self.description = self.xml.get('description')
for element in self.xml:
if element.tag == 'ReadUnit':
conf = ReadUnitConf()
conf.readXml(element, self.id, self.err_queue)
self.configurations[conf.id] = conf
elif element.tag == 'ProcUnit':
conf = ProcUnitConf()
input_proc = self.configurations[element.get('inputId')]
conf.readXml(element, self.id, self.err_queue)
self.configurations[conf.id] = conf
ReceiverData Operation, test PlotData
r889
Miguel Valdez
v2.2.0: Controller updated
r708 self.filename = abs_file
ReceiverData Operation, test PlotData
r889
Miguel Valdez
r681 return 1
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177 def __str__(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 text = '\nProject[id=%s, name=%s, description=%s]\n\n' % (
self.id,
self.name,
self.description,
)
for conf in self.configurations.values():
text += '{}'.format(conf)
José Chávez
formatting
r1082
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 return text
ReceiverData Operation, test PlotData
r889
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 def createObjects(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 keys = list(self.configurations.keys())
George Yong
Multiprocessing for digitalRF just for reading Unit(Task #1461 )
r1192 keys.sort()
for key in keys:
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 conf = self.configurations[key]
conf.createObjects()
if conf.inputId is not None:
conf.object.setInput(self.configurations[conf.inputId].object)
ReceiverData Operation, test PlotData
r889
Errors handling and gracefully terminate main process
r1241 def monitor(self):
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 t = Thread(target=self._monitor, args=(self.err_queue, self.ctx))
Errors handling and gracefully terminate main process
r1241 t.start()
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def _monitor(self, queue, ctx):
ReceiverData Operation, test PlotData
r889
Errors handling and gracefully terminate main process
r1241 import socket
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Errors handling and gracefully terminate main process
r1241 procs = 0
err_msg = ''
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Errors handling and gracefully terminate main process
r1241 while True:
msg = queue.get()
if '#_start_#' in msg:
procs += 1
elif '#_end_#' in msg:
procs -=1
else:
err_msg = msg
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
if procs == 0 or 'Traceback' in err_msg:
Errors handling and gracefully terminate main process
r1241 break
time.sleep(0.1)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Errors handling and gracefully terminate main process
r1241 if '|' in err_msg:
name, err = err_msg.split('|')
if 'SchainWarning' in err:
log.warning(err.split('SchainWarning:')[-1].split('\n')[0].strip(), name)
elif 'SchainError' in err:
log.error(err.split('SchainError:')[-1].split('\n')[0].strip(), name)
else:
log.error(err, name)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 else:
Errors handling and gracefully terminate main process
r1241 name, err = self.name, err_msg
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 time.sleep(1)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Errors handling and gracefully terminate main process
r1241 ctx.term()
Miguel Valdez
-Email alert is not sent when a Keyboard error occurred ...
r735
Juan C. Espinoza
Change multiSchain by MPProject
r1052 message = ''.join(err)
ReceiverData Operation, test PlotData
r889
Errors handling and gracefully terminate main process
r1241 if err_msg:
subject = 'SChain v%s: Error running %s\n' % (
schainpy.__version__, self.name)
subtitle = 'Hostname: %s\n' % socket.gethostbyname(
socket.gethostname())
subtitle += 'Working directory: %s\n' % os.path.abspath('./')
subtitle += 'Configuration file: %s\n' % self.filename
subtitle += 'Time: %s\n' % str(datetime.datetime.now())
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 readUnitConfObj = self.getReadUnit()
Errors handling and gracefully terminate main process
r1241 if readUnitConfObj:
subtitle += '\nInput parameters:\n'
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 subtitle += '[Data path = %s]\n' % readUnitConfObj.parameters['path']
subtitle += '[Start date = %s]\n' % readUnitConfObj.parameters['startDate']
subtitle += '[End date = %s]\n' % readUnitConfObj.parameters['endDate']
subtitle += '[Start time = %s]\n' % readUnitConfObj.parameters['startTime']
subtitle += '[End time = %s]\n' % readUnitConfObj.parameters['endTime']
Errors handling and gracefully terminate main process
r1241
a = Alarm(
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 modes=self.alarm,
Errors handling and gracefully terminate main process
r1241 email=self.email,
message=message,
subject=subject,
subtitle=subtitle,
filename=self.filename
)
a.start()
Now alarm is a process, add SchainWarning exception for handling non-stop exceptions
r1129
Miguel Valdez
A new Plotter Class was added for plotting using queues
r691 def setFilename(self, filename):
ReceiverData Operation, test PlotData
r889
Miguel Valdez
A new Plotter Class was added for plotting using queues
r691 self.filename = filename
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 def runProcs(self):
Juan C. Espinoza
Review MP changes, three types of operations: self, other and external
r1177
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 err = False
n = len(self.configurations)
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 while not err:
for conf in self.getUnits():
merged branches
r1370 ok = conf.run()
Add python 3.8 compatibility with macOs
r1342 if ok == 'Error':
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 n -= 1
continue
elif not ok:
break
if n == 0:
err = True
ReceiverData Operation, test PlotData
r889
Juan C. Espinoza
Change multiSchain by MPProject
r1052 def run(self):
José Chávez
cambios xmax xmin
r1004
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 log.success('\nStarting Project {} [id={}]'.format(self.name, self.id), tag='')
self.started = True
Modificación a kmamisr para ejecutarse en la versión 3, creación de scripts con terminación v3 para difereciarlos, se comentó la linea #720 de JroIO_param.py debido a que reiniciaba la lista de archivos, ocasionando la reescritura del archivo hdf5. Alguna otra modificación aparente es producto de algunas variaciones en espacios al usar la función print()
r1279 self.start_time = time.time()
self.createObjects()
Juan C. Espinoza
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
r1287 self.runProcs()
log.success('{} Done (Time: {:4.2f}s)'.format(
Juan C. Espinoza
set new matplotlib version in setup, improved searchFiles for multiprocessing
r1112 self.name,
Errors handling and gracefully terminate main process
r1241 time.time()-self.start_time), '')