home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __docformat__ = 'restructuredtext en'
- import cPickle as pickle
- import xmlrpclib
- import copy
- from zope.interface import Interface, implements
- from twisted.internet import defer
- from twisted.python import components, failure
- from foolscap import Referenceable
- from IPython.kernel.twistedutil import blockingCallFromThread
- from IPython.kernel import error, task as taskmodule, taskclient
- from IPython.kernel.pickleutil import can, uncan
- from IPython.kernel.clientinterfaces import IFCClientInterfaceProvider, IBlockingClientAdaptor
- from IPython.kernel.mapper import TaskMapper, ITaskMapperFactory, IMapper
- from IPython.kernel.parallelfunction import ParallelFunction, ITaskParallelDecorator
-
- class IFCTaskController(Interface):
-
- def remote_run(binTask):
- pass
-
-
- def remote_abort(taskid):
- pass
-
-
- def remote_get_task_result(taskid, block = False):
- pass
-
-
- def remote_barrier(taskids):
- pass
-
-
- def remote_spin():
- pass
-
-
- def remote_queue_status(verbose):
- pass
-
-
- def remote_clear():
- pass
-
-
-
- class FCTaskControllerFromTaskController(Referenceable):
- implements(IFCTaskController, IFCClientInterfaceProvider)
-
- def __init__(self, taskController):
- self.taskController = taskController
-
-
- def packageFailure(self, f):
- f.cleanFailure()
- return self.packageSuccess(f)
-
-
- def packageSuccess(self, obj):
- serial = pickle.dumps(obj, 2)
- return serial
-
-
- def remote_run(self, ptask):
-
- try:
- task = pickle.loads(ptask)
- task.uncan_task()
- except:
- d = defer.fail(pickle.UnpickleableError('Could not unmarshal task'))
-
- d = self.taskController.run(task)
- d.addCallback(self.packageSuccess)
- d.addErrback(self.packageFailure)
- return d
-
-
- def remote_abort(self, taskid):
- d = self.taskController.abort(taskid)
- d.addCallback(self.packageSuccess)
- d.addErrback(self.packageFailure)
- return d
-
-
- def remote_get_task_result(self, taskid, block = False):
- d = self.taskController.get_task_result(taskid, block)
- d.addCallback(self.packageSuccess)
- d.addErrback(self.packageFailure)
- return d
-
-
- def remote_barrier(self, taskids):
- d = self.taskController.barrier(taskids)
- d.addCallback(self.packageSuccess)
- d.addErrback(self.packageFailure)
- return d
-
-
- def remote_spin(self):
- d = self.taskController.spin()
- d.addCallback(self.packageSuccess)
- d.addErrback(self.packageFailure)
- return d
-
-
- def remote_queue_status(self, verbose):
- d = self.taskController.queue_status(verbose)
- d.addCallback(self.packageSuccess)
- d.addErrback(self.packageFailure)
- return d
-
-
- def remote_clear(self):
- return self.taskController.clear()
-
-
- def remote_get_client_name(self):
- return 'IPython.kernel.taskfc.FCTaskClient'
-
-
- components.registerAdapter(FCTaskControllerFromTaskController, taskmodule.ITaskController, IFCTaskController)
-
- class FCTaskClient(object):
- implements(taskmodule.ITaskController, IBlockingClientAdaptor, ITaskMapperFactory, IMapper, ITaskParallelDecorator)
-
- def __init__(self, remote_reference):
- self.remote_reference = remote_reference
-
-
- def unpackage(self, r):
- return pickle.loads(r)
-
-
- def run(self, task):
- task.can_task()
- ptask = pickle.dumps(task, 2)
- task.uncan_task()
- d = self.remote_reference.callRemote('run', ptask)
- d.addCallback(self.unpackage)
- return d
-
-
- def get_task_result(self, taskid, block = False):
- d = self.remote_reference.callRemote('get_task_result', taskid, block)
- d.addCallback(self.unpackage)
- return d
-
-
- def abort(self, taskid):
- d = self.remote_reference.callRemote('abort', taskid)
- d.addCallback(self.unpackage)
- return d
-
-
- def barrier(self, taskids):
- d = self.remote_reference.callRemote('barrier', taskids)
- d.addCallback(self.unpackage)
- return d
-
-
- def spin(self):
- d = self.remote_reference.callRemote('spin')
- d.addCallback(self.unpackage)
- return d
-
-
- def queue_status(self, verbose = False):
- d = self.remote_reference.callRemote('queue_status', verbose)
- d.addCallback(self.unpackage)
- return d
-
-
- def clear(self):
- d = self.remote_reference.callRemote('clear')
- return d
-
-
- def adapt_to_blocking_client(self):
- IBlockingTaskClient = IBlockingTaskClient
- import IPython.kernel.taskclient
- return IBlockingTaskClient(self)
-
-
- 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 TaskMapper(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
-
-
-