home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __docformat__ = 'restructuredtext en'
- from zope.interface import Interface, implements
- from twisted.python import components, log
- from IPython.kernel.twistedutil import blockingCallFromThread
- from IPython.kernel import task, error
- from IPython.kernel.mapper import SynchronousTaskMapper, ITaskMapperFactory, IMapper
- from IPython.kernel.parallelfunction import ParallelFunction, ITaskParallelDecorator
-
- class IBlockingTaskClient(Interface):
- pass
-
-
- class BlockingTaskClient(object):
- implements(IBlockingTaskClient, ITaskMapperFactory, IMapper, ITaskParallelDecorator)
-
- def __init__(self, task_controller):
- self.task_controller = task_controller
- self.block = True
-
-
- def run(self, task, block = False):
- tid = blockingCallFromThread(self.task_controller.run, task)
- if block:
- return self.get_task_result(tid, block = True)
- return tid
-
-
- def get_task_result(self, taskid, block = False):
- return blockingCallFromThread(self.task_controller.get_task_result, taskid, block)
-
-
- def abort(self, taskid):
- return blockingCallFromThread(self.task_controller.abort, taskid)
-
-
- def barrier(self, taskids):
- return blockingCallFromThread(self.task_controller.barrier, taskids)
-
-
- def spin(self):
- return blockingCallFromThread(self.task_controller.spin)
-
-
- def queue_status(self, verbose = False):
- return blockingCallFromThread(self.task_controller.queue_status, verbose)
-
-
- def clear(self):
- return blockingCallFromThread(self.task_controller.clear)
-
-
- def map(self, func, *sequences):
- return self.mapper().map(func, *sequences)
-
-
- def mapper(self, clear_before = False, clear_after = False, retries = 0, recovery_task = None, depend = None, block = True):
- return SynchronousTaskMapper(self, clear_before = clear_before, clear_after = clear_after, retries = retries, recovery_task = recovery_task, depend = depend, block = block)
-
-
- def parallel(self, clear_before = False, clear_after = False, retries = 0, recovery_task = None, depend = None, block = True):
- mapper = self.mapper(clear_before, clear_after, retries, recovery_task, depend, block)
- pf = ParallelFunction(mapper)
- return pf
-
-
- components.registerAdapter(BlockingTaskClient, task.ITaskController, IBlockingTaskClient)
-