##// END OF EJS Templates
Mostly final version of display data....
Mostly final version of display data. * New publish_display_data function. * backend_inline is using publish_display_data. * Documentation added.

File last commit:

r3239:1cf44de3
r3277:aba5f629
Show More
client.py
110 lines | 3.5 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
Brian Granger
Updating IPython.kernel to fix minor bugs....
r3239 import twisted
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.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
# 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
Updating IPython.kernel to fix minor bugs....
r3239 # PotentialZombieWarning is deprecated from Twisted 10.0.0 and above and
# using the filter on > 10.0.0 creates a warning itself.
if twisted.version.major < 10:
from twisted.internet.error import PotentialZombieWarning
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
Brian Granger
Updating IPython.kernel to fix minor bugs....
r3239 def _result_list_printer(obj, p, cycle):
if cycle:
return p.text('ResultList(...)')
return p.text(repr(obj))
# ResultList is a list subclass and will use the default pretty printer.
# This overrides that to use the __repr__ of ResultList.
ip = get_ipython()
ip.displayhook.default_formatter.for_type_by_name(
'IPython.kernel.multiengineclient', 'ResultList', _result_list_printer
)
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'
]