##// END OF EJS Templates
moved Quitter to deathrow as it is no longer used by anything
moved Quitter to deathrow as it is no longer used by anything

File last commit:

r2520:16ce76c4
r3186:b1780dcc
Show More
client.py
95 lines | 3.0 KiB | text/x-python | PythonLexer
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 #!/usr/bin/env python
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234 # encoding: utf-8
"""This module contains blocking clients for the controller interfaces.
Unlike the clients in `asyncclient.py`, the clients in this module are fully
blocking. This means that methods on the clients return the actual results
rather than a deferred to the result. Also, we manage the Twisted reactor
for you. This is done by running the reactor in a thread.
The main classes in this module are:
* MultiEngineClient
* TaskClient
* Task
* CompositeError
"""
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 #-----------------------------------------------------------------------------
# Copyright (C) 2008-2009 The IPython Development Team
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 #-----------------------------------------------------------------------------
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 #-----------------------------------------------------------------------------
Brian Granger
Fixing two small bugs in :mod:`IPython.kernel`....
r2520 # Warnings control
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 #-----------------------------------------------------------------------------
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 import warnings
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
Brian Granger
Fixing two small bugs in :mod:`IPython.kernel`....
r2520 # Twisted generates annoying warnings with Python 2.6, as will do other code
# that imports 'sets' as of today
warnings.filterwarnings('ignore', 'the sets module is deprecated',
DeprecationWarning )
# This one also comes from Twisted
warnings.filterwarnings('ignore', 'the sha module is deprecated',
DeprecationWarning)
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
Brian Granger
Fixing two small bugs in :mod:`IPython.kernel`....
r2520 import sys
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
from twisted.internet import reactor
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 from twisted.internet.error import PotentialZombieWarning
from twisted.python import log
from IPython.kernel.clientconnector import ClientConnector, Cluster
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234 from IPython.kernel.twistedutil import ReactorInThread
from IPython.kernel.twistedutil import blockingCallFromThread
# These enable various things
from IPython.kernel import codeutil
Brian Granger
General work on the kernel config.
r2294 # import IPython.kernel.magic
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
# Other things that the user will need
Brian E Granger
The refactoring of the Task system is nearly complete. Now there are...
r1395 from IPython.kernel.task import MapTask, StringTask
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234 from IPython.kernel.error import CompositeError
#-------------------------------------------------------------------------------
# Code
#-------------------------------------------------------------------------------
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 warnings.simplefilter('ignore', PotentialZombieWarning)
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 _client_tub = ClientConnector()
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 get_multiengine_client = _client_tub.get_multiengine_client
get_task_client = _client_tub.get_task_client
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234 MultiEngineClient = get_multiengine_client
TaskClient = get_task_client
Brian Granger
Changed the INT then KILL delay to 2 s to be a little more friendly.
r2308 # This isn't great. I should probably set this up in the ReactorInThread
# class below. But, it does work for now.
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 log.startLogging(sys.stdout, setStdout=0)
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234
# Now we start the reactor in a thread
rit = ReactorInThread()
rit.setDaemon(True)
Brian Granger
Most of the new ipcluster is now working, including a nice client.
r2306 rit.start()
__all__ = [
'MapTask',
'StringTask',
'MultiEngineClient',
'TaskClient',
'CompositeError',
'get_task_client',
'get_multiengine_client',
'Cluster'
]