跳转到主要内容

Renku平台的Python SDK和CLI。

项目描述

https://github.com/SwissDataScienceCenter/renku-python/workflows/Test,%20Integration%20Tests%20and%20Deploy/badge.svg https://img.shields.io/coveralls/SwissDataScienceCenter/renku-python.svg https://img.shields.io/github/tag/SwissDataScienceCenter/renku-python.svg https://img.shields.io/pypi/dm/renku.svg Documentation Status https://img.shields.io/github/license/SwissDataScienceCenter/renku-python.svg

一个用于Renku协作数据科学平台的Python库。它包括面向最终用户的CLI和SDK以及服务后端。它提供创建和管理项目及数据集的功能,以及在执行分析任务时捕获数据来源的简单实用工具。

注意:

renku-python 是 Renku 的 Python 库和核心服务 - 它 不会 启动 Renku 平台本身 - 关于如何启动平台,请参阅 Renku 文档中的 运行平台 部分。

Renku 用户指南

安装

Renku 的发布版本和开发版本可以从 PyPI 获取。您可以使用任何能够处理 PyPI 包的工具进行安装。我们的建议是使用 :code:pipx

先决条件

Renku 在内部依赖于 Git,因此请确保您已经在您的系统上安装了 Git 安装 Git

Renku 还提供对存储在 Git LFS 中的大文件的支持,默认情况下使用 Git LFS,并且应在您的系统上安装。如果您不想使用 Git LFS,可以在运行 Renku 命令时使用 -S 标志,例如 renku -S <command>。有关在 renku 中使用 Git LFS 的更多信息,请参阅文档中的 数据 部分。

当调用 renku updaterenku rerun 时,Renku 使用 CWL 来执行记录的工作流程。CWL 依赖于 NodeJs 来执行工作流程,因此如果您想使用这些功能,则需要安装 NodeJs

对于服务的开发,建议使用 Docker

pipx

首先,安装 pipx 并确保 $PATH 配置正确。

$ python3 -m pip install --user pipx
$ python3 -m pipx ensurepath

安装 pipx 后,使用以下命令安装 renku

$ pipx install renku
$ which renku
~/.local/bin/renku

pipx 将 Renku 安装到其自己的虚拟环境中,确保它不会污染您可能已经安装的其他包或版本。

安装开发版本

$ pipx install --pip-args pre renku

pip

$ pip install renku

最新的开发版本可在 PyPI 或 Git 存储库中找到

$ pip install --pre renku
# - OR -
$ pip install -e git+https://github.com/SwissDataScienceCenter/renku-python.git#egg=renku

如果您想使用命令行界面,并且不需要可导入的 Python 库,请根据您的操作系统和偏好使用以下安装步骤。

Windows

可以使用 Windows Subsystem for Linux (WSL) 运行 Renku。要安装 WSL,请按照 官方说明 进行。

我们建议您在安装步骤到达那里时使用 Ubuntu 20.04 映像。

一旦安装了 WSL,启动 WSL 终端,并使用以下命令安装 Renku 所需的软件包

$ sudo apt-get update && sudo apt-get install git python3 python3-pip python3-venv pipx

由于 Ubuntu 默认安装了一个较旧的 Git LFS 版本,在克隆存储库时已知的某些错误,我们建议您按照以下 说明 手动安装最新版本。

一旦安装了所有要求,您可以通过运行以下命令来正常安装 Renku

$ pipx install renku
$ pipx ensurepath

在此之后,Renku 即可使用。您可以在 /mnt/ 的各个挂载点访问 Windows 系统,并且可以像往常一样直接从 WSL 执行 Windows 可执行程序(例如 \*.exe)。所以 renku run myexecutable.exe 将按预期工作。

Docker

可以使用 Docker 命令启动 CLI 的容器化版本。

$ docker run -it -v "$PWD":"$PWD" -w="$PWD" renku/renku-python renku

它确保您的当前目录挂载到容器中的相同位置。

CLI 示例

初始化 Renku 项目

$ mkdir -p ~/temp/my-renku-project
$ cd ~/temp/my-renku-project
$ renku init

创建数据集并向其中添加数据

$ renku dataset create my-dataset
$ renku dataset add my-dataset https://raw.githubusercontent.com/SwissDataScienceCenter/renku-python/master/README.rst

运行分析

$ renku run --name my-workflow -- wc < data/my-dataset/README.rst > wc_readme

追踪数据来源

$ renku workflow visualize wc_readme

这些都是基础知识,但 Renku 允许您在数据分析工作流程中做更多的事情。完整的文档将很快在以下地址提供:[https://renku-python.readthedocs.io/](https://renku-python.readthedocs.io/)

作为服务的 Renku

此存储库包含一个作为 Flask 应用程序编写的 renku-core RPC 服务,它提供了 Renku CLI 的几乎所有功能。这用于提供 RenkuLab 网页用户界面的后端之一。该服务可以作为 Helm 图表(见 helm-chart)在生产环境中部署。

本地部署

要测试服务功能,您可以使用 docker-compose up [docker-compose](https://pypi.ac.cn/project/docker-compose/)快速轻松地部署它。请确保复制 renku/service/.env-example 文件并配置到您的需求。这里的设置是使用 traefik 反向代理在背后公开服务,以模拟实际的生产部署。您可以通过 http://localhost/api 访问代理端点。服务本身在端口 8080 上公开,因此其端点可以直接在 http://localhost:8080 下访问。

API 文档

renku 核心服务实现了 API 文档作为 OpenAPI 3.0.x 规范。您可以使用以下命令检索规范的 yaml:

` $ renku service apispec `

如果使用 docker-compose 在本地部署服务,您可以在 localhost/api/swagger 下找到 swagger-UI。要向服务端点发送正确的授权头,请点击 Authorize 按钮,并输入有效的 JWT 令牌和一个具有读写仓库范围的 gitlab 令牌。JWT 令牌可以通过使用 renku login 登录 renku 实例并从您的本地 renku 配置中检索到。

在实时部署中,swagger 文档可在 https://<renku-endpoint>/swagger 下获得。您可以通过首先正常登录 renku,然后转到 swagger 页面,点击 Authorize 并选择 oidc (OAuth2, authorization_code) 选项来授权 API。将 client_id 保留为 swagger 并将 client_secret 留空,选择所有范围并点击 Authorize。您现在应该已经登录,并且可以使用各个请求上的 Try it out 按钮发送请求。

开发 Renku

为了从源测试功能,您可以方便地使用 pipx 以可编辑模式安装 renku。克隆存储库,然后执行以下操作:

$ pipx install \
    --editable \
    <path-to-renku-python>[all] \
    renku

这将安装所有测试和调试的额外功能。

如果您已经使用pyenv来管理不同的Python版本,您可能会对安装pyenv-virtualenv以创建用于开发renku的临时虚拟环境感兴趣。

一旦您为renku-python创建并激活了虚拟环境,您就可以使用常规的pip命令来安装所需的依赖项。

$ pip install -e .[all]  # use `.[all]` for zsh

服务

可以使用docker compose(见上面的“本地部署”)来开发服务和测试其API。

如果您有可用的完整RenkuLab部署,您可以使用telepresence v1在本地开发和调试。只需运行start-telepresence.sh脚本并按照说明操作。请注意,该脚本不适用于telepresence v2。

运行测试

我们使用pytest来运行测试。您可以使用我们的run-tests.sh脚本来运行特定的一组测试。

$ ./run-tests.sh -h

我们使用blackisort来检查文件。

使用外部调试器

本地机器

要使用例如Visual Studio Code调试器运行renku,您需要通过用于安装renku的任何虚拟环境中的python可执行文件运行它。如果需要调试器包,您需要先将其注入到虚拟环境中,例如。

$ pipx inject renku ptvsd

最后,通过调试器运行renku

$ ~/.local/pipx/venvs/renku/bin/python -m ptvsd --host localhost --wait -m renku.ui.cli <command>

如果您使用Visual Studio Code,您可能还想设置Remote Attach配置PathMappings,以便它可以找到您的源代码,例如。

{
    "name": "Python: Remote Attach",
    "type": "python",
    "request": "attach",
    "port": 5678,
    "host": "localhost",
    "pathMappings": [
        {
            "localRoot": "<path-to-renku-python-source-code>",
            "remoteRoot": "<path-to-renku-python-source-code>"
        }
    ]
}

项目详情


发布历史 发布通知 | RSS源

下载文件

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

源代码发行版

renku-2.9.4.tar.gz (722.3 kB 查看散列)

上传时间 源代码

构建分发版

renku-2.9.4-py3-none-any.whl (1.1 MB 查看哈希值)

上传时间 Python 3

支持者