跳转到主要内容

笔记本存储工作流程

项目描述

bookstore :books

Documentation Status Build Status CircleCI Codecov

bookstore :books: 提供存储 :cd:、调度 :calendar: 和发布 :book: 笔记本的工具和工作流程建议。

完整文档托管在 ReadTheDocs 上。

bookstore 是如何工作的

自动笔记本版本控制

每次笔记本的 保存 都会在对象存储中创建一个笔记本的 不可变副本

为了简化实现,我们目前依赖于 S3 作为对象存储,使用 有版本控制的存储桶

存储路径

所有笔记本都归档到单个有版本控制的 S3 存储桶中,特定的前缀表示笔记本的生命周期

  • /workspace - 用户在此处编辑
  • /published - 公开笔记本(至组织)

每个笔记本路径都是一个命名空间,外部服务将其与调度关联。我们将版本归档,同时保持路径完整(除非用户更改它们)。

前缀 意图
/workspace/kylek/notebooks/mine.ipynb “草稿”中的笔记本
/published/kylek/notebooks/mine.ipynb 当前发布副本

计划中的笔记本也将通过笔记本键进行引用。此外,我们还需要能够显示版本 ID。

转向此存储计划

由于大多数人使用常规文件系统,我们将从写入 /workspace 前缀作为存档存储开始(使用 post_save_hook 为 Jupyter 内容管理器编写保存时写入)。

发布

bookstore 发布端点是经典 Jupyter 服务器的 serverextension。这意味着您需要显式启用 serverextension 才能使用此端点。

要这样做,请运行

jupyter serverextension enable --py bookstore

要仅为此当前环境启用它,请运行

jupyter serverextension enable --py bookstore --sys-prefix

安装

bookstore 需要 Python 3.6 或更高版本。

注意:支持在运行 Python 3.6 及以上版本的 Jupyter 服务器上安装。您的笔记本仍然可以在 Python 2 或 Python 3 中运行。

  1. 克隆此存储库。
  2. 在存储库的根目录中,在终端输入:python3 -m pip install .(提示:不要忘记命令末尾的点)

配置

# jupyter config
# At ~/.jupyter/jupyter_notebook_config.py for user installs on macOS
# See https://jupyter-docs.pythonlang.cn/en/latest/projects/jupyter-directories.html for other places to plop this

from bookstore import BookstoreContentsArchiver

c.NotebookApp.contents_manager_class = BookstoreContentsArchiver

# All Bookstore settings are centralized on one config object so you don't have to configure it for each class
c.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 these
c.BookstoreSettings.s3_access_key_id = <AWS Access Key ID / IAM Access Key ID>
c.BookstoreSettings.s3_secret_access_key = <AWS Secret Access Key / IAM Secret Access Key>

开发

如果您正在开发 bookstore,您将需要在本地运行 ci 测试并制作发布版本。

使用 CONTRIBUTING.md 了解更多关于贡献的信息。使用 running_ci_locally.md 了解更多关于在本地运行 ci 测试的信息。使用 running_python_tests.md 了解如何在本地上运行测试。使用 RELEASING.md 了解更多关于发布 bookstore 的信息。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

bookstore-2.5.1.tar.gz (116.4 kB 查看哈希)

上传于

构建分布版

bookstore-2.5.1-py2.py3-none-any.whl (34.2 kB 查看哈希值)

上传于 Python 2 Python 3

支持者