I'm a little biased, but like the idea of moving towards an ipywidgets-based interaction with the notebook (i.e. vpython as a widget)....can probably help with that later this summer once SciPy is done :)
Matt On Tuesday, May 22, 2018 at 10:45:36 AM UTC-5, Jason Grout wrote: > > Right, JLab uses it's own extension system, and webpack to bundle > javascript up, and does not use require or the nbextension system. > > I think maybe you can do something like this for the first steps: > > 1. Write an npm package containing the vpython javascript. JLab extensions > are fundamentally npm packages containing some extra metadata. > 2. Write a very simple extension (perhaps like the beginning steps of the > xkcd extension?) whose sole purpose is to get the js on the page. You do > this by importing the vpython js modules into your main extension file that > JupyterLab loads. > 3. Decide how vpython is going to display. It seems that there are lots of > parallels with ipywidgets and vpython, so you might look to ipywidgets for > inspiration. For example, we now display using the ipython display system > and a custom widget mimetype and custom mimetype renderer. > > Jason > > > On Tue, May 22, 2018 at 7:10 AM Steve Spicklemire <[email protected] > <javascript:>> wrote: > >> My understanding is that webpack is used, but that’s based on the >> tutorials I read. Have I got that right? >> >> thanks, >> -steve >> >> > On May 22, 2018, at 10:02 AM, John <[email protected] <javascript:>> >> wrote: >> > >> > For classic jupyter notebook, vpython is copying javascript files to >> the nbextensions directory by calling the routine >> > >> > notebook.nbextensions.install_nbextension() >> > >> > from the vpython package directory. >> (site-packages/vpython/vpython_libraries/) . These javascript files are >> loaded into the notebook from the nbextensions directory using ipython >> display method along with requirejs. >> > >> > >> display(Javascript("""require(["nbextensions/vpython_libraries/glowcomm"], >> function(){console.log("GLOWCOMM LOADED");})""")) >> > This works in classic jupyter notebook but not in Jupyterlab . Does >> jupyterlab use the nbextensions directory or does it is place javascript >> fles in a different directory. What should be used in place of requirejs to >> load javascript files? >> > >> > >> > >> > >> > On Tuesday, May 22, 2018 at 6:11:57 AM UTC-7, Steve Spicklemire wrote: >> > Hi Jupyter folks, >> > >> > I'm hoping to carve out some time in the next few weeks to make some >> serious progress on a jupyterlab compatible version of vpython ( >> http://vpython.org). >> > >> > The jupyter notebook interaction of vpython involves opening a >> communication channel (ipykernel.comm.Comm) between the kernel process and >> a javascript program running in the browser handling the display. The >> javascript code is currently embedded in the python package >> (site-packages/vpython/vpython_libraries/) and transferred into >> nbextensions on demand and then pulled into the notebook using >> ipython.display.display. >> > >> > It has been suggested that this whole scheme needs to be redesigned >> under jupyterlab. I'm hoping to begin that design process now, but being >> new to jupyterlab, I'm not really sure where to begin. I did read through >> the tutorials for jupyterlab extensions, but I'm not clear what sort of >> extension would be needed here since it doesn't seem to exactly match the >> use cases described in the exam extensions. I'd love some input from any >> jupyterlab veterans about how we should go about planning/building this. >> Ideally users would be able to take code that works in the jupyter >> notebook, and run it unchanged in jupyterlab. >> > >> > something like: >> > >> > ------- >> > from vpython import * >> > >> > s=sphere() >> > >> > -------- >> > >> > without needing any magics or other python code if possible. >> > >> > thanks, >> > -steve >> > >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Project Jupyter" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an email to [email protected] <javascript:>. >> > To post to this group, send email to [email protected] >> <javascript:>. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/jupyter/279ebceb-50f6-49fb-aae2-f3e74cf04009%40googlegroups.com >> . >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Project Jupyter" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jupyter/6BE31AFE-8531-4261-B191-91E989974474%40gmail.com >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > > > -- You received this message because you are subscribed to the Google Groups "Project Jupyter" 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/af3e0de0-a1c2-4edc-bc1a-9eb601cb60e0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
