home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __docformat__ = 'restructuredtext en'
- from twisted.internet import defer
- from IPython.kernel.fcutil import Tub, UnauthenticatedTub
- from IPython.kernel.config import config_manager as kernel_config_manager
- from IPython.config.cutils import import_item
- from IPython.kernel.fcutil import find_furl
- co = kernel_config_manager.get_config_obj()
- client_co = co['client']
-
- class ClientConnector(object):
-
- def __init__(self):
- self._remote_refs = { }
- self.tub = Tub()
- self.tub.startService()
-
-
- def get_reference(self, furl_or_file):
- furl = find_furl(furl_or_file)
- if furl in self._remote_refs:
- d = defer.succeed(self._remote_refs[furl])
- else:
- d = self.tub.getReference(furl)
- d.addCallback(self.save_ref, furl)
- return d
-
-
- def save_ref(self, ref, furl):
- self._remote_refs[furl] = ref
- return ref
-
-
- def get_task_client(self, furl_or_file = ''):
- task_co = client_co['client_interfaces']['task']
- if furl_or_file:
- ff = furl_or_file
- else:
- ff = task_co['furl_file']
- return self.get_client(ff)
-
-
- def get_multiengine_client(self, furl_or_file = ''):
- task_co = client_co['client_interfaces']['multiengine']
- if furl_or_file:
- ff = furl_or_file
- else:
- ff = task_co['furl_file']
- return self.get_client(ff)
-
-
- def get_client(self, furl_or_file):
- furl = find_furl(furl_or_file)
- d = self.get_reference(furl)
-
- def wrap_remote_reference(rr):
- d = rr.callRemote('get_client_name')
- d.addCallback((lambda name: import_item(name)))
-
- def adapt(client_interface):
- client = client_interface(rr)
- client.tub = self.tub
- return client
-
- d.addCallback(adapt)
- return d
-
- d.addCallback(wrap_remote_reference)
- return d
-
-
-