没有一般的“状态”查询,但您可以通过 GET 请求查看现有笔记本的 JSON 摘要
http://127.0.0.1:8888/notebooks
这将为您提供以下形式的字典列表:
[
{
"kernel_id": null,
"name": "Animations Using clear_output",
"notebook_id": "49222a70-b746-4fb2-9b96-fe1a61e82979"
},
{
"kernel_id": "2e8de018-c816-4222-82d2-4a35cfa95f1c",
"name": "Cell Magics",
"notebook_id": "38ce96ab-b456-4af1-b68d-44a1a3ce86ee"
}
]
Wherekernel_id=null
意味着笔记本没有运行,并且kernel_id=U-U-I-D
意味着它正在运行。
最重要的是是否有任何笔记本打开且未保存更改
无法知道未保存的更改,因为此信息仅存在于浏览器中 - 服务器甚至不知道文档已被编辑,因此无需查询。
我想做的另一件事是控制笔记本服务器,例如告诉它在关闭之前保存任何未保存的更改。
这是不可能的,因为实时文档实际上并不存在于服务器中。编辑后的文档仅存在于编辑笔记本的浏览器窗口中的浏览器端。
如果要检查未保存的更改和/或触发保存,则必须通过与 WebView 中的 javascript 交互来执行此操作 - js 中的笔记本对象有一个“脏”标志,表示存在未保存的更改。所以“保存任何未保存的更改”将是:
if (IPython.notebook.dirty) { IPython.notebook.save_notebook(); }
用 IPython 1.0.dev 测试