数据实验室数据管理平台实例的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_KEY
或 PUBLIC_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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 81d356c508bb895e30964bd9097137e3e9b5a80604ed2db88164525e710b270b |
|
MD5 | 95d4252240f359adae63765c868505f4 |
|
BLAKE2b-256 | cf83e3cf103831ecedf6e07859a246b02eca06816f46bdefcd428b5ec0d337e1 |
datalab_api-0.2.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6912473f726cd0ae1070e69daca2fbae38201b94c443ae63c8c51e4269de5b35 |
|
MD5 | 1b3d21f8e04781c6817ad159b389b067 |
|
BLAKE2b-256 | c74bea46f265b740b9d5d06cea294d127d12a18dbd53a8487db07bf97805b8ab |