directview.py
68 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
Brian Granger
|
r7198 | """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 | ||||
Brian Granger
|
r7211 | from widget import JavascriptWidget | ||
Brian Granger
|
r7198 | |||
class DirectViewWidget(JavascriptWidget): | ||||
def __init__(self, dv): | ||||
self.dv = dv | ||||
self.targets = self.dv.targets | ||||
super(DirectViewWidget,self).__init__() | ||||
def render(self): | ||||
Brian Granger
|
r7211 | fname = os.path.join(os.path.dirname(__file__), u'directview.js') | ||
with open(fname, 'r') as f: | ||||
jscode = f.read() | ||||
Brian Granger
|
r7198 | data = { | ||
'widget_var': self.widget_var, | ||||
'targets' : self.encode_json(self.targets) | ||||
} | ||||
jscode = jscode % data | ||||
return jscode | ||||
Brian Granger
|
r7200 | def execute(self, code, targets='all'): | ||
if targets == 'all': | ||||
targets = self.targets | ||||
Brian Granger
|
r7210 | result = self.dv.execute(code,silent=False,block=False,targets=targets) | ||
result.wait() | ||||
result.display_outputs() | ||||
Brian Granger
|
r7198 | |||
def interact(dv): | ||||
w = DirectViewWidget(dv) | ||||
w.interact() | ||||
return w | ||||