跳转到主要内容

数据实验室数据管理平台实例的Python API(https://github.com/the-grey-group/datalab)。

项目描述

datalab Python API

一个简单的Python API,可以与 datalab 实例交互。

这里的想法是提供一组用于以自动化方式操作样本、细胞、库存、文件、用户和相关元数据的实用函数和模型。

此API可能不会公开给定 datalab 实例中所有可用的功能,这个包将支持底层 datalab REST API 的多个版本。这意味着API主要是 功能性的,而不是面向对象的,因为 datalab 实例可以自由使用自己的自定义数据模型。可用的架构作为实例元数据报告,并且将来面向对象的模型可能能够直接在客户端生成(例如,返回的数据将是Python对象,如 Sample,而不是JSON数据)。

此处的问题跟踪器将用于跟踪功能的开发以及错误报告。如果您有任何建议或反馈,请将其发布在那里。

安装

API 可以通过安装此存储库并使用 pip 来使用,最好是在全新的 Python 3.9+ 环境中(例如使用 conda、virtualenv 或其他相关工具创建),如果不清楚,请询问。

无论是从 PyPI 获取最新发布的版本

pip install datalab-api

还是从 GitHub 获取最新开发版本

git clone git@github.com:datalab-org/datalab-api
cd datalab-api
pip install .

使用方法

示例用法作为 Jupyter notebook 可以在 examples 目录中找到,或者在线文档中,以及完整的 API 文档

身份验证

目前唯一支持的认证方法是使用 API 密钥。您可以通过访问您选择的实例的 /get-api-key 端点或通过在浏览器中访问您的账户设置来为您选择的 datalab 实例生成一个(如果您使用的是 datalab 的最新版本)。

此 API 密钥可以通过环境变量 DATALAB_API_KEY 设置。为了支持需要与多个 datalab 实例交互的用例,客户端还将检查使用 IDENTIFIER_PREFIX 的前缀环境变量,例如 GREY_DATALAB_API_KEYPUBLIC_DATALAB_API_KEY。只有匹配的密钥才会被读取(例如,连接到 公共演示 datalab 时,将忽略以 PUBLIC_ 开头的其他环境变量)。

Python API

此包实现了显示和操作条目的基本功能

from datalab_api import DatalabClient

with DatalabClient("https://public.api.odbx.science") as client:

    # List all items of a given type
    items = client.get_items()

    # Get more info on a particular item
    item = client.get_item(item_id="test")

    # Upload a file to an item
    file_response = client.upload_file(filepath="my_echem_data.mpr", item_id="test")

命令行界面 (CLI)

还有一个实验性的 CLI,通过 datalab 命令公开。此 CLI 有许多子命令,可以使用 datalab help 列出或通过仅输入 datalab 进入外壳来列出。目前,CLI 没有公开底层 API 的所有功能,主要面向 GET 重点关注操作。

$ datalab

╭──────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                          │
│               oooo              o8              o888             oooo                    │
│            ooooo888    ooooooo o888oo  ooooooo    888   ooooooo    888ooooo              │
│          888    888    ooooo888 888    ooooo888   888   ooooo888   888    888            │
│          888    888  888    888 888  888    888   888 888    888   888    888            │
│            88ooo888o  88ooo88 8o 888o 88ooo88 8o o888o 88ooo88 8o o888ooo88              │
│                                                                                          │
╰─ Copyright (c) 2020-2024 Matthew Evans, Joshua Bocarsly & the Datalab Development Team. ─╯

datalab > help

Documented commands (type help <topic>):
========================================
authenticate  get  info

Undocumented commands:
======================
exit  help  quit

datalab > help get

 Usage: [INSTANCE_URL] get [OPTIONS] ITEM_TYPE [INSTANCE_URL]

 Get a table of items of the given type.

╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────╮
│ *    item_type         TEXT            [default: None] [required]                                   │
│      instance_url      [INSTANCE_URL]  [default: None]                                              │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────╮
│ --page-limit        INTEGER  [default: 10]                                                          │
│ --api-key           TEXT     [default: None]                                                        │
│ --log-level         TEXT     [default: WARNING]                                                     │
│ --help                       Show this message and exit.                                            │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯

datalab > get samples api.odbx.science --page-limit 2
                                                    /samples/
┏━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ type  ID               refcode      name                            nblocks  collections  creators      ┃
┡━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│  C    test_api         grey:WHQFXG                                        0               Matthew Evans │
├──────┼─────────────────┼─────────────┼────────────────────────────────┼─────────┼─────────────┼───────────────┤
│  S    test12331231312  grey:GFSUQM                                        1               Matthew Evans │
└──────┴─────────────────┴─────────────┴────────────────────────────────┴─────────┴─────────────┴───────────────┘

项目详情


下载文件

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

源分布

datalab_api-0.2.4.tar.gz (18.7 kB 查看哈希值)

上传

构建分布

datalab_api-0.2.4-py3-none-any.whl (15.9 kB 查看哈希值)

上传 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面