JupyterLab用户指南2:URL

与经典notebook一样,JupyterLab为用户提供了一种复制方式以此打开特定notebook或文件的url。此外,JupyterLab URL是用户界面的高级部分,允许管理工作区。这两个函数 -- 文件路径和工作区 -- 可以在打开特定工作区中特定文件url-combine的URL中合并。

/tree文件导航

JupyterLab的文件导航URLs采用经典notebook的命名原则; 这些URLs是/tree URLs:

http(s)://<server:port>/<lab-location>/lab/tree/path/to/notebook.ipynb

输入此URL将以单文档模式tabs打开JupyterLab中的notebook。

默认情况下,文件浏览器将导航到包含请求文件的目录。这一行为可以用可选的file-browser-path查询参数更改:

http(s)://<server:port>/<lab-location>/lab/tree/path/to/notebook.ipynb?file-browser-path=/

输入上述URL将显示工作区根目录,而不是文件浏览器中的/path/to/目录。

管理工作区 (UI)

JupyterLab会话始终位于工作区中。工作区包含JupyterLab的状态: 当前打开的文件,应用程序区域和选项卡的分布等。刷新页面时,工作区恢复。

默认工作区没有名称,属于初级/labURL:

http(s)://<server:port>/<lab-location>/lab

所有其他工作区的名称都是URL的一部分:

http(s)://<server:port>/<lab-location>/lab/workspaces/foo

工作区将其状态保存在服务器上,并可以在多个用户(或浏览器)之间共享,只要他们访问相同的服务器.

工作区一次只能在单个浏览器选项卡中打开。如果JupyterLab检测到一个工作区同时被多次打开,它将提示输入新的工作区名称。也不支持同时在两个不同的浏览器选项卡中打开同一个文档。

克隆工作区

您可以使用cloneurl参数复制一个工作区的内容到另一个工作区。

foo工作区的内容复制到bar工作区

http(s)://<server:port>/<lab-location>/lab/workspaces/bar?clone=foo

将默认工作区的内容复制到foo工作区中:

http(s)://<server:port>/<lab-location>/lab/workspaces/foo?clone

foo工作区的内容复制到默认工作区:

http(s)://<server:port>/<lab-location>/lab?clone=foo

重置工作区

使用reset url参数清除工作区的内容。

重置foo工作区的内容:

http(s)://<server:port>/<lab-location>/lab/workspaces/foo?reset

重置默认工作区的内容:

http(s)://<server:port>/<lab-location>/lab/workspaces/lab?reset

组合URL函数

如上所述,这些URL函数可以单独使用,也可以组合使用。

重置foo工作区并在之后加载特定notebook:

http(s)://<server:port>/<lab-location>/lab/workspaces/foo/tree/path/to/notebook.ipynb?reset

bar工作区的内容克隆到foo工作区中并在之后加载notebook:

http(s)://<server:port>/<lab-location>/lab/workspaces/foo/tree/path/to/notebook.ipynb?clone=bar

重置默认工作区的内容并加载notebook:

http(s)://<server:port>/<lab-location>/lab/tree/path/to/notebook.ipynb?reset

管理工作区 (CLI)

JupyterLab为import工作区和export工作区提供命令行界面:

$ # Exports the default JupyterLab workspace
$ jupyter lab workspaces export
{"data": {}, "metadata": {"id": "/lab"}}
$
$ # Exports the workspaces named `foo`
$ jupyter lab workspaces export foo
{"data": {}, "metadata": {"id": "/lab/workspaces/foo"}}
$
$ # Exports the workspace named `foo` into a file called `file_name.json`
$ jupyter lab workspaces export foo > file_name.json
$
$ # Imports the workspace file `file_name.json`.
$ jupyter lab workspaces import file_name.json
Saved workspace: <workspaces-directory>/labworkspacesfoo-54d5.jupyterlab-workspace

export功能非常友好: 如果工作区不存在,它仍将生成用于导出的一个空工作区。

import功能验证工作区文件的结构并验证metadata工作区中的id字段,以确保其URL与workspaces_url配置或page_url配置相兼容,从而验证该工作区名称是否正确或是否为默认工作区。

工作区文件格式

JSON文件中特殊规格的工作区文件。

有两个顶级键需求,数据和元数据。

元数据必须与某id键映射,该id键与工作区ID有相同值。这也应该是访问该工作区的相对URL路径,如/lab/workspace/foo。

数据键映射到IStateDB的初始状态。许多插件在State DB中查找配置。另外,注册到ILayoutRestorer的插件将在State DB中查找所有键,从first :之前的跟踪器命名空间开始。这些键的值应具有可映射的数据属性。

例如,如果您的工作区如下所示:

{
  "data": {
    "application-mimedocuments:package.json:JSON": {
      "data": { "path": "package.json", "factory": "JSON" }
    }
  }
}

It will run the docmanager:open with the { "path": "package.json", "factory": "JSON" } args, because the application-mimedocuments tracker is registerd with the docmanager:open command, like this:

它将用{ "path": "package.json", "factory": "JSON" }参数运行docmanager:open,因为application-mimedocuments跟踪器已注册到 docmanager:open命令下,如下所示:

const namespace = 'application-mimedocuments';
const tracker = new WidgetTracker<MimeDocument>({ namespace });
void restorer.restore(tracker, {
  command: 'docmanager:open',
  args: widget => ({
    path: widget.context.path,
    factory: Private.factoryNameProperty.get(widget)
  }),
  name: widget =>
    `${widget.context.path}:${Private.factoryNameProperty.get(widget)}`
});

并非在first :, package.json:JSON被删除且不相干之后的数据键。

客服