跳转到主要内容

用于生成Jupyter报告的微服务

项目描述

Papermill Jupyter报告

PyPI Install with conda Github Actions Status

通过执行笔记本并将其导出为静态HTML页面,Papermill Jupyter报告是一个微服务,它结合了 papermillnbconvert 来生成Jupyter报告。

它可以作为一个独立的应用程序或作为JupyterHub服务运行。

Demo

工作流程如下所示。您可以

  1. 设置一个特定的URL来选择一个笔记本,并将查询参数作为参数传递,
  2. 或者交互式地选择一个笔记本并设置其参数。

特性

API描述 在这里

该服务提供了两个特性

  • 列出所有可用的报告模板(及其参数) 可用的模板都是存在于 template_root_dir 中的笔记本文件。
  • 生成报告(即执行参数化的笔记本并将其转换为HTML)

仅支持Python笔记本的参数化笔记本。

配置

服务的可配置设置包括

  • broken_reports_dir:破损笔记本将被复制的文件夹 - 它必须是 notebook_dir 的子文件夹;默认 /home/USERNAME/broken_reports
  • config_file:配置文件名;默认 papermill_service_config
  • git_auth:Git认证(用户名:密码);默认 None
  • notebook_dir:笔记本服务器根目录;默认 /home/USERNAME。这用于构建指向损坏的笔记本的链接。
  • port:服务端口;默认 8888
  • template_root_dir:服务器上包含笔记本模板的文件夹;默认 /opt/papermill_report
  • template_dir:包含笔记本模板的 Git 仓库文件夹;默认 "."
  • template_git_url:笔记本模板的 Git 仓库 URL 源;默认 None
  • template_paths:在默认模板之前搜索服务网页 Jinja 模板的路径;默认 None

如果将字符串 USERNAME 用于 broken_reports_dirnotebook_dir,则将替换为用户的用户名。

注意

  • 在 Unix 平台上,服务必须以 root 身份运行,因为报告进程通过 su <user> --login 命令执行,以代表认证用户并重新设置环境变量。

开发

这个 Python 包旨在作为 JupyterHub Hub-Managed 服务 部署。

后果是

  • 服务运行自己的 tornado 服务器。请求将通过 JupyterHub 内部代理从标准 URL https://myhub.horse/services/my-service/(注意所需的尾随 /)转发给它。
  • 身份验证延迟到 JupyterHub
  • 由于由 JupyterHub 管理,JupyterHub 将检查服务是否运行。如果不运行,它将重新启动它。此外,当 JupyterHub 被良好停止时,它将停止服务。

测试

此服务中有 2 个级别的测试。一些常规的 pytest 单元测试和一个 Dockerfile,以启动服务作为 JupyterHub 服务来启动集成环境。

单元测试

python -m install -r requirements.txt -r requirements_dev.txt
pytest papermill_report

与 JupyterHub 集成

要构建和启动集成环境

docker build -t papermill-report .
docker run -p 8000:8000 --rm papermill-report

Hub 已参数化(见 jupyterhub_config.py)为两个用户

  • jovyan:管理员
  • marc:用户

这两个账户都没有密码。

模板文件夹是此项目的 examples 文件夹。

您还可以通过访问有效端点手动测试服务

  • http://localhost:8000/services/report/
  • http://localhost:8000/services/report/broken_parameters.ipynb
  • http://localhost:8000/services/report/no_parameters.ipynb
  • http://localhost:8000/services/report/subfolder/simple_execute.ipynb&msg=hello

可以使用以下命令使用该环境自动执行集成测试

docker-compose -f e2e-tests/docker-compose.yml run e2e ./e2e-tests/run_e2e.sh
docker-compose -f e2e-tests/docker-compose.yml down

项目详情


下载文件

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

源分布

papermill_report-2.0.5.tar.gz (2.2 MB 查看哈希

上传时间

构建分布

papermill_report-2.0.5-py2.py3-none-any.whl (60.7 kB 查看哈希

上传时间 Python 2 Python 3

支持者