Source code for sas.perspectives.calculator.load_thread
"""
Thread handler used to load data
"""
import time
from sas.data_util.calcthread import CalcThread
from sas.dataloader.loader import Loader
[docs]class DataReader(CalcThread):
"""
Load a data given a filename
"""
def __init__(self, path, completefn=None,
updatefn = None,
yieldtime = 0.01,
worktime = 0.01
):
CalcThread.__init__(self, completefn,
updatefn,
yieldtime,
worktime)
self.path = path
#Instantiate a loader
self.loader = Loader()
self.starttime = 0
[docs] def isquit(self):
"""
@raise KeyboardInterrupt: when the thread is interrupted
"""
try:
CalcThread.isquit(self)
except KeyboardInterrupt:
raise KeyboardInterrupt
[docs] def compute(self):
"""
read some data
"""
self.starttime = time.time()
try:
data = self.loader.load(self.path)
self.complete(data=data)
except KeyboardInterrupt:
# Thread was interrupted, just proceed and re-raise.
# Real code should not print, but this is an example...
raise
[docs]class GenReader(CalcThread):
"""
Load a sld data given a filename
"""
def __init__(self, path, loader,
completefn=None,
updatefn = None,
yieldtime = 0.01,
worktime = 0.01
):
CalcThread.__init__(self, completefn,
updatefn,
yieldtime,
worktime)
self.path = path
#Instantiate a loader
self.loader = loader
self.starttime = 0
[docs] def isquit(self):
"""
@raise KeyboardInterrupt: when the thread is interrupted
"""
try:
CalcThread.isquit(self)
except KeyboardInterrupt:
raise KeyboardInterrupt
[docs] def compute(self):
"""
read some data
"""
self.starttime = time.time()
try:
data = self.loader.read(self.path)
self.complete(data=data)
except:
# Thread was interrupted, just proceed and re-raise.
# Real code should not print, but this is an example...
raise