The design phase has gone smoothly, so let's consider some strategies for 
making fully functional Jupyter cells within Leo.  This is possible, in at 
least two ways:

1. Create a fully functional html representation of each cell, and render 
that html in Leo's existing body pane. It may be possible to use `nbconvert 
--to html` to get the html.

2. Create a custom Qt widget that looks and works exactly like the desired 
cell.

The real work is connecting each cell to the appropriate kernel, and 
displaying the results. Clearly is possible--both IPython itself and the 
Jupyter notebook do it.

But there is *lots* of magic (behind-the-scenes complications) involved. 
Furthermore, pyzo renders graphics output in a popup Qt pane, which is too 
bad because Leo can't use the pyzo code as is. And pyzo puts the following 
bizarre warning in the IPython pane every time it produces graphics output:

QQQ
Note on using QApplication.exec_(): 

The GUI event loop is already running in the pyzo kernel, and exec_()

does not block. In most cases your app should run fine without the need

for modifications. For clarity, this is what the pyzo kernel does:

- Prevent deletion of objects in the local scope of functions leading to 
exec_()

- Prevent system exit right after the exec_() call

QQQ


Not exactly smooth :-)


*Summary*


Leo's existing body pane may suffice for rendering an html representation 
of each pane.  Otherwise, a custom Qt widget will be needed, with separate 
areas for labels and code and output.  No big deal. Anyone care to create 
such a thing?

Communicating with the Jupyter kernels is the major task. Happily, the 
newish Jupyter architecture guarantees that Leo can, in fact, be a Jupyter 
client. All it takes is blood, sweat and code. pyzo may be a guide, but it 
isn't a complete guide.

EKR

-- 
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.

Reply via email to