笔记本电脑的存储工作流
bookstore的Python项目详细描述
书店:书籍:
bookstore:books:为存储:cd:、调度:calendar:、发布:book:笔记本提供工具和工作流建议。
完整文档位于ReadTheDocs上。
书店是如何运作的
自动笔记本版本控制
笔记本的每个save都会在对象存储上创建笔记本的immutable copy。
为了简化实现,我们目前依赖s3作为对象存储,使用versioned buckets。
存储路径
所有笔记本都存档到一个单一版本的s3存储桶中,该存储桶具有表示笔记本生命周期的特定前缀:
/workspace
-用户编辑的位置/published
-公共笔记本(对组织而言)
每个笔记本路径都是外部服务绑定到计划中的命名空间。我们归档版本,保持路径完整(直到用户更改它们)。
Prefix | Intent |
---|---|
^{ | Notebook in “draft” |
^{ | Current published copy |
预定的笔记本也将由笔记本键引用。此外,我们还需要能够显示版本ID。
转换到此存储计划
由于大多数人都在一个常规文件系统中,我们将从向
/workspace
前缀作为存档存储(使用post_save_hook
在保存时写入
对于Jupyter内容管理器)。
出版
书店发布端点是经典jupyter的serverextension
服务器。这意味着您需要显式地启用serverextension
使用端点。
为此,请运行:
jupyter serverextension enable --py bookstore
要仅在当前环境中启用它,请运行:
jupyter serverextension enable --py bookstore --sys-prefix
安装
bookstore需要Python3.6或更高版本。
注意:支持在运行python 3.6及更高版本的jupyter服务器上安装。 您的笔记本仍然可以在Python2或Python3中运行。
- 克隆此回购协议。
- 在repo的根目录中,输入终端:
python3 -m pip install .
(提示:不要忘记命令末尾的点)
配置
# jupyter config# At ~/.jupyter/jupyter_notebook_config.py for user installs on macOS# See https://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html for other places to plop thisfrombookstoreimportBookstoreContentsArchiverc.NotebookApp.contents_manager_class=BookstoreContentsArchiver# All Bookstore settings are centralized on one config object so you don't have to configure it for each classc.BookstoreSettings.workspace_prefix="/workspace/kylek/notebooks"c.BookstoreSettings.published_prefix="/published/kylek/notebooks"c.BookstoreSettings.s3_bucket="<bucket-name>"# Note: if bookstore is used from an EC2 instance with the right IAM role, you don't# have to specify thesec.BookstoreSettings.s3_access_key_id=<AWSAccessKeyID/IAMAccessKeyID>c.BookstoreSettings.s3_secret_access_key=<AWSSecretAccessKey/IAMSecretAccessKey>
开发
如果您是在bookstore上开发的,那么您将希望在本地运行ci测试并进行发布。
使用CONTRIBUTING.md了解有关投稿的更多信息。 使用running_ci_locally.md了解有关在本地运行CI测试的更多信息。 使用running_python_tests.md了解如何在本地运行测试。 使用RELEASING.md了解有关发布书店的更多信息。