|
|
"""Widget for interacting with an IPython parallel engine.
|
|
|
|
|
|
Authors:
|
|
|
|
|
|
* Brian Granger
|
|
|
"""
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Copyright (C) 2008-2012 The IPython Development Team
|
|
|
#
|
|
|
# Distributed under the terms of the BSD License. The full license is in
|
|
|
# the file COPYING, distributed as part of this software.
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Imports
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
import os
|
|
|
import uuid
|
|
|
|
|
|
from IPython.core.display import display, Javascript
|
|
|
from IPython.core.displaypub import publish_pretty
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Code
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
import os, sys
|
|
|
from IPython.core.display import Javascript
|
|
|
|
|
|
from widget import JavascriptWidget
|
|
|
|
|
|
|
|
|
class DirectViewWidget(JavascriptWidget):
|
|
|
|
|
|
def __init__(self, dv):
|
|
|
self.dv = dv
|
|
|
self.targets = self.dv.targets
|
|
|
super(DirectViewWidget,self).__init__()
|
|
|
|
|
|
def render(self):
|
|
|
fname = os.path.join(os.path.dirname(__file__), u'directview.js')
|
|
|
with open(fname, 'r') as f:
|
|
|
jscode = f.read()
|
|
|
data = {
|
|
|
'widget_var': self.widget_var,
|
|
|
'targets' : self.encode_json(self.targets)
|
|
|
}
|
|
|
jscode = jscode % data
|
|
|
return jscode
|
|
|
|
|
|
def execute(self, code, targets='all'):
|
|
|
if targets == 'all':
|
|
|
targets = self.targets
|
|
|
result = self.dv.execute(code,silent=False,block=False,targets=targets)
|
|
|
result.wait()
|
|
|
result.display_outputs()
|
|
|
|
|
|
|
|
|
def interact(dv):
|
|
|
w = DirectViewWidget(dv)
|
|
|
w.interact()
|
|
|
return w
|
|
|
|
|
|
|
|
|
|