On Monday, November 6, 2017 at 7:06:27 AM UTC-6, Edward K. Ream wrote:
But for now I'm enjoying learning as much as I can about the jupyter code.
> So I'll follow the high-energy path and not worry about where it leads...
>
I'm beginning to doubt whether the code can be distilled as I first
envisioned. For example, the following fails when run from Leo:
# from jupyter_console.__main__.py
from jupyter_console import app
app.launch_new_instance()
This code gives the message endlessly when run from Leo:
QCoreApplication::exec: The event loop is already running
Apparently, there is Qt code in the jupyter console app. It's extremely
messy.
The alternative would be to perform a more radical distillation of the
code, trying to create a working analog of Terry's "totally made up" pseudo
code, namely:
connection = zeromq.connect("http://127.0.0.1:8901/notebooks/book2")
cell_id = connection.add_cell(type='code')
connection.set_content(cell_id, "import math\na=math.sin(1)")
connection.run_cell(cell_id)
html = connection.get_html(cell_id)
There are too many details to keep straight in my mind. My previous,
not-really-working code was:
def make_channel(channel_name):
print('-'*20)
put('channel_name', channel_name)
url = cl._make_url(channel_name)
put('url', url)
cl.log.debug("connecting %s channel to %s" % (channel_name, url))
socket = cl.connect_shell(identity=cl.session.bsession)
put('socket', socket)
channel = ZMQSocketChannel(socket, cl.session)
# New code: don't use the various _x_channel_class values.
put('channel', channel)
return channel
put('g.isPython3', g.isPython3)
cl = client.KernelClient()
put('shell_channel_class', cl.shell_channel_class)
put('session', cl.session)
cl._shell_channel = make_channel('shell')
cl._iopub_channel = make_channel('iopub')
cl._stdin_channel = make_channel('stdin')
cl._hb_channel = make_channel('hb')
cl.allow_stdin = True
*Summary*
I am at my limit of my working memory, trying to keep all the various
approaches in my head.
The "distilling" project is foundering during initialization, which is
mind-boggling.
The "prototype" project is foundering because of it's incompleteness.
The solution may be to ignore "packaging" (existing classes) and just focus
on these tasks:
- Create and init a kernel.
- Send and receive an "execute" message.
It's not clear that *any* jupyter code can be used, except imports...
Edward
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.