是否可以为Jupyter Lab创建扩展,以便可以通过笔记本中的Python单元进行操作?
在Jupyter Notebook中,这可以通过具有Python后端和Javascript前端的IPywidget来实现。这两个可以交互,因此我可以通过Python将指令发送到javascript前端,反之亦然。
据我了解,在Jupyter Lab中不再可能,因为他们禁用了通过IPython执行javascript的功能。建议创建jupyterlab扩展。是否可以通过Python代码控制这种扩展,如果可以,怎么办?
在一个简单的示例中,我想要一个侧边栏(如TOC扩展名),其中包含一个文本框,可以通过Python设置其文本。
答案 0 :(得分:0)
到目前为止我发现了什么
“ ConsolePanel和NotebookPanel现在公开了sessionContext:ISessionContext属性,允许使用统一的方式与内核会话进行交互。” 来源:https://jupyterlab.readthedocs.io/en/stable/developer/extension_migration.html
以下是有关内核消息传递的示例:
https://github.com/jupyterlab/extension-examples/tree/master/advanced/kernel-messaging
String text = getText(new File(pdfPath));
System.out.println("Text in PDF: " + text);
static String getText(File pdfFile) throws IOException {
PDDocument doc = PDDocument.load(pdfFile);
return new PDFTextStripper().getText(doc);
}