NBViewer扩展和Jupyter笔记本扩展,用于将NBViewer中查看的笔记本克隆到用户的主目录。
项目描述
该项目是从Daniel Allan的笔记本克隆扩展开始构建的,作为基础。目前需要运行我的NBViewer分支的step7
才能运行。
安装说明
要快速测试这个版本,最简单的方法是使用包含在本存储库的Docker
子文件夹中的Docker镜像和设置说明。
否则,使用与Jupyter主分支相同的安装说明安装我的NBViewer分支的step7
,特别是使用NBViewer作为JupyterHub服务的设置说明。然后下载此存储库,并在文件夹中运行(点很重要,它表示“当前工作目录”)
pip install .
如果您不想修改源代码,否则
pip install -e .
这将安装相应的Python包,但我们仍然需要告诉Jupyter使用适当的子模块作为笔记本服务器扩展。为此,请运行
jupyter serverextension enable clonenotebooks.cloners --sys-prefix
请确保您已通过Pip、Conda或其他方式安装了nbviewer
作为Python包,以便此操作可以正常工作。
然后,将templates
文件夹复制到您希望的位置,并在jupyterhub_config.py
文件中添加NBViewer的命令
--template-path=/your/preferred/location
然后,请确保包含一个nbviewer_config.py
文件(这是目前使用NBViewer的分支的主要原因),其中包含以下行
c.NBViewer.handler_settings = {'clone_notebooks' : True}
c.NBViewer.local_handler = "clonenotebooks.renderers.LocalRenderingHandler"
c.NBViewer.url_handler = "clonenotebooks.renderers.URLRenderingHandler"
c.NBViewer.github_blob_handler = "clonenotebooks.renderers.GitHubBlobRenderingHandler"
c.NBViewer.github_tree_handler = "clonenotebooks.renderers.GitHubTreeRenderingHandler"
c.NBViewer.gist_handler = "clonenotebooks.renderers.GistRenderingHandler"
c.NBViewer.user_gists_handler = "clonenotebooks.renderers.UserGistsRenderingHandler"
默认情况下,笔记本将被克隆到由jupyterhub_config.py
中的c.Spawner.notebook_dir
值确定的根目录。如果要将笔记本克隆到另一个目录,需要在nbviewer_config.py
中的c.NBViewer.handler_settings
行进行修改,如下所示
c.NBViewer.handler_settings = {'clone_notebooks' : True, 'clone_to_directory' : <desired directory here>}
可以将{username}
作为JupyterHub用户名的占位符,类似于jupyterhub_config.py
中的c.Spawner.notebook_dir
和c.Spawner.default_url
的设置。例如以下内容是有效的
c.NBViewer.handler_settings = {'clone_notebooks' : True, 'clone_to_directory' : '/users/{username[0]}/{username}'}
这将导致笔记本被克隆到/jupyter/users/f/foo
(对于用户foo
)和/jupyter/users/b/bar
(对于用户bar
),如果c.Spawner.notebook_dir
的值为'/jupyter'
,并且如果c.Spawner.notebook_dir
的值为'/'
,则笔记本将被克隆到/users/f/foo
(对于用户foo
)和/users/b/bar
(对于用户bar
)。特别是,笔记本克隆的目的地将始终相对于内容管理器的根目录(通常等于c.Spawner.notebook_dir
的值)。
此存储库中也包含一个nbviewer_config.py
的示例副本,在Docker
子文件夹中。理想情况下,这应该包含所有配置,但必须承认,这些设置说明比可能更模糊,可能没有建议一个重要的步骤。
如果您遇到任何困难,建议您与Docker
子文件夹中的此存储库的Dockerfile进行比较以获取示例设置。请提供有关如何改进文档的所有反馈,因为这些反馈将非常受欢迎。以下是改进文档和/或一般反馈的请求页面链接。
内核规格克隆
对于几乎任何来源(本地、Gist、URL)的笔记本,clonenotebooks
会在克隆的笔记本所在目录中检查一个“本地”内核规格(kernel.json
)文件,假定这个内核规格可以在克隆目标中用于加载运行环境所需的环境。如果找到了,则内核规格会被安装,除了克隆的笔记本之外。分配给内核规格的名称(即<environment_path>/share/jupyter/kernels
中对应目录的名称)默认是包围目录的名称。(这里使用的“内核名称”不应与kernel.json
的display_name
属性混淆,后者是最终用户可以看到的,并且不需要是唯一的。)(在URL或Gist的笔记本的情况下,“包围目录”指的是URL“路径”的“基本名称”,不包括文件名,例如test
在https://example.com/test/notebook.ipynb
中。)如果已找到具有相同名称的内核规格,则覆盖先前的那个。特别是,如果您更新了目录中的内核规格(kernel.json
)文件,然后从该目录克隆另一个笔记本,则更新的内核规格将替换先前的那个。
对于从GitHub获取的笔记本,其行为略有不同。首先,clonenotebooks
会在存储库的根目录检查是否存在“全局”kernelspec。其次,它会在笔记本的目录中检查“局部”kernelspec,就像上面提到的案例一样。如果找到了“局部”kernelspec,无论是否也找到了“全局”kernelspec,都会安装“局部”kernelspec,并且名称为<repo_name>-<branch_name>-<enclosing_directory>
(以避免与任何“全局”kernelspec发生名称冲突)。如果找到了“全局”kernelspec,但没有找到“局部”kernelspec,那么“全局”kernelspec将以<repo_name>-<branch_name>
的名称安装。(对于位于存储库根目录中的笔记本,位于存储库根目录的任何kernel.json
都将被视为“全局”kernelspec,并因此以<repo_name>-<branch_name>
安装,即使在这种情况下,kernel.json
在技术上也是一个“局部”kernelspec。)
如果需要该功能,并且可以选择合理的默认位置来检查“全局”kernelspec,则可以为其他笔记本源实现“全局”kernelspec。
功能
此扩展可以克隆以下URL提供的笔记本
归属权
包含在多容器Dockerfile演示中的示例笔记本来自Jupyter有趣笔记本画廊。它们的归属权属于各自的作者(Filipa Rodrigues,Jason Chin,Shashi Gowda)。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
clonenotebooks-1.0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d0b6b41fd52c6e9f66789d5c1088be22f29985ab66613d94b1f8cfdf1f421800 |
|
MD5 | 88d1b3743bb4d842ee121ba18d8c514a |
|
BLAKE2b-256 | 4e4af7835410b1e93f8aa6c88968802c9ca753bf29cbd7957310ee6124064139 |
clonenotebooks-1.0.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e26690c806014fac1294634cf3eb3e84b1847c33782ae88dcfd28e514ca4bd6c |
|
MD5 | b9a7224e03291fbc74fc7261a57129c7 |
|
BLAKE2b-256 | a8b00970834035da14c3e073fbe7fe7d10cff905d97ddbcfba5e856996b8b97d |