Skip to content

Support IPython interactive widgets used in Python code #89

@stevengj

Description

@stevengj

If I load something like vispy or Matplotlib's new nbagg backend, which displays in IPython using IPython's interactive-widget API, it would be good to have it work in Julia as well via PyCall and Interact.

What I think this would involve:

  • Have a new PyInteract package (that requires PyCall, Interact, and IJulia).
  • using PyInteract would pyimport("IPython.html.widgets"), and then monkey-patch it to remap some of the low-level function calls:
    • Creating a comm object in Python should instead call the corresponding IJulia/Interact routine
    • The on_msg callback function of that comm object should call back to IPython to handle the message on the Python side.

I don't know the internals of IPython at all, so some advice from @minrk, @fperez, @ellisonbg, and/or @Carreau would be very helpful:

  • What is the minimal set of low-level IPython functions to monkey-patch in order to hook up IPython's widget code to the IJulia plumbing?
  • Is monkey-patching the right thing here, or is there some better way to install hooks into IPython to change the widget plumbing?

cc: @shashi, @dcjones

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions