@deepnote/云
深 Note Cloud API的客户端(审查):创建笔记本,触发运行,进行投票完成, 获取其执行快照,并作为 Streamlit apps 发布已有的项目文件 .
用于 deepnote run --cloud (单位:千美元)@deepnote/cli和通过 @deepnote/local-runner。 。 。 .
一个 应用 hTML、CSS和由Deepnote主持并在浏览器中运行的JavaScript。 A 类 简化应用程序 是一个运行在项目硬件上的 Python UI .
客户端接受ID和平面对象. 将笔记本内容映射到 ProjectSpec 当创建工程时.
安装
npm install @deepnote/cloud
使用量
import {
triggerNotebookRun,
pollRunUntilComplete,
waitForRunSnapshot,
} from "@deepnote/cloud";
const started = await triggerNotebookRun(baseUrl, token, {
notebookId,
inputs,
detachedRunStorageMode: "readonly",
});
const run = await pollRunUntilComplete(baseUrl, token, started.runId, {
snapshotDelivery: "inline",
});
const { content: snapshotYaml } = await waitForRunSnapshot(baseUrl, token, run);
认证是 Authorization: Bearer <token>。终点: POST {baseUrl}/v2/runs 财务报告和审定财务报表
GET {baseUrl}/v2/runs/{runId}. 反应计划是允许的(.passthrough()因为API
正在预览中,其确切形状可能会漂移。 失败投出 ApiError
(从) @deepnote/database-integrations) (中文(简体) ).
全注本运行默认脱去,不更新活版编辑器中的输出.
detachedRunStorageMode: "readonly" 防止写作持续的项目存储;
它不隔离数据库,集成,外部API,或笔记本访问的其他系统.
Block-scoped 运行使用活模式, 因为 API 不支持 blockIds 离散的运行
因此无法使用 detachedRunStorageMode。 。 。 .
API 参考
| 导出 | 说明 |
|---|---|
createProject(baseUrl, token, spec, opts?) | 创建项目、 笔记本和块; 返回指定的 IDs Deepnote 。 见下文. |
triggerNotebookRun(baseUrl, token, body) | POST /v2/runs 开始运行一个已有的笔记本。 返回常态运行 . |
getRun(baseUrl, token, runId, options?) | GET /v2/runs/{runId} - 获取运行当前状态. |
pollRunUntilComplete(baseUrl, token, runId, opts?) | 直到运行达到终端状态。 重复短暂的失败; 执行最后期限 . |
fetchSnapshotContent(run, options) | 返回运行的快照 YAML, 从内置内容或一个 downloadUrl。 。 。 . null 如果它没有. |
waitForRunSnapshot(baseUrl, token, run, opts?) | 还原 a SettledRunSnapshot 在边界定居后 内容 content 实值 null ; 无法读取的快照. |
describeRunError(run) | 如果 API 提供一条, 运行失败的可读信息 . |
isTerminalStatus 编号 : isSuccessStatus 编号 : isFailedStatus | 状态分类员. 未知状态被作为非地铁处理,因此漂移的API不能被挂起. |
RUN_STATUSES, (中文(简体) ), RunStatus | 已知运行状态 . |
RunTimeoutError | 掷出时 pollRunUntilComplete 超过期限。 载着 runId 跑步可能还在进行中. |
NormalizedRun, (中文(简体) ), TriggerRunBody, (中文(简体) ), GetRunOptions, (中文(简体) ), PollOptions, (中文(简体) ), FetchSnapshotOptions, (中文(简体) ), SettledRunSnapshot, (中文(简体) ), WaitForRunSnapshotOptions | 类型. |
listAllProjects(baseUrl, token, opts?) | GET /v2/projects ——工作空间的每一个项目,行走活泼到耗尽. |
getProjectDetail(baseUrl, token, projectId, opts?) | GET /v2/projects/{id} - 一个项目,包括其工作目录和数据应用程序设置(dataApp, (中文(简体) ), null 其他项目类型). |
createDataAppProject(baseUrl, token, { name, folderId? }, opts?) | POST /v2/projects 与 projectType: 'data_app' ——创建空的未公布的数据应用项目;返回 { id, name }。 。 。 . |
setDataAppPublished(baseUrl, token, projectId, published, opts?) | PATCH /v2/projects/{id} 与 { dataApp: { published } } ——发布或撤销数据应用项目;返回 { published, url }。 。 。 . |
exportProject(baseUrl, token, projectId, opts?) | GET /v2/projects/{id}/export ——项目笔记本为定型 .deepnote 文档(未从导出 ZIP 中解开,每个笔记本一个)。 见下文. |
importProject(baseUrl, token, projectId, files, opts?) | POST /v2/projects/{id}/import - 核对ZIP .deepnote 文档(准确反向输出)进入项目。 见下文. |
uploadProjectFile(baseUrl, token, projectId, path, bytes, opts?) | POST /v2/files ——上传1个工作-指导文件(多部分). 不覆盖;先删除。 缓期调剂限于100米B. |
deleteProjectFile(baseUrl, token, projectId, path, opts?) | DELETE /v2/files 删除一个工作指导文件; false 如果它不存在的话. |
downloadProjectFile(baseUrl, token, projectId, path, opts?) | GET /v2/files/download ——一个工作-指导文件的生字节. 缓期调剂限于100米B. |
createStreamlitApp(baseUrl, token, body, opts?) | POST /v2/streamlit-apps ——作为主机Streamlit应用程序服务于现有项目相关文件. 返回 StreamlitApp 记录; url 这是它的地址. |
listStreamlitApps(baseUrl, token, projectId, opts?) | GET /v2/streamlit-apps?projectId= ——项目"流体"应用软件(未涂装). |
getStreamlitAppStatus(baseUrl, token, appId, opts?) | GET /v2/streamlit-apps/{id}/status —— 说 running, (中文(简体) ), starting,或 unavailable。 。 。 . |
waitForStreamlitApp(baseUrl, token, appId, opts?) | 投票直到 running· ; unavailable 不是终端。 重复短暂的失败; 抛出 StreamlitAppTimeoutError 之后 timeoutMs (默认10分). |
StreamlitAppTimeoutError | 掷出时 waitForStreamlitApp 超过期限。 卡莉丝 streamlitAppId 财务报告和审定财务报表 lastStatus;应用程序可能仍在启动. |
StreamlitApp, (中文(简体) ), StreamlitAppStatus, (中文(简体) ), CreateStreamlitAppBody, (中文(简体) ), StreamlitAppRequestOptions, (中文(简体) ), WaitForStreamlitAppOptions | 类型. |
说明 exportProject数字 : 导出是一个 ZIP 和一个 .deepnote 每个笔记本的文档
携带完整的项目信封和共享 metadata.modifiedAt。 。 。 . exportProject 解开它
返回文档({ filename, content }[],按文件名排序). 这个 文档 为:
字节决定一个不变的项目——ZIP容器不是——所以计算变化
指纹在文档上,而不是档案.
说明 importProject数字 : 发送一个 ZIP 和一个 .deepnote 文档
导出形状。 通过导出 metadata.modifiedAt 作为 baseModifiedAt 检测结构
更改(创建/删除/改名、其他进口)和内容散列为 baseContentHash
也可以检测编辑器块编辑,它从不推进时间戳;在不匹配服务器时
以409(丢失的更新保护)拒绝进口,以及 force 跳过两个检查。 进口
用笔记本 id 进行校正( 创建了不匹配的笔记本, 缺失的笔记本只删除与
deleteMissingNotebooks;空的 ZIP 导入不包含笔记本, 或者删除下面的每个笔记本
旗帜)。 每份文件都必须属于目标项目,并商定项目名称和整合
附录。 使用共享名称和一份礼物 project.integrations 列表对齐
工程附件( x)[] 解开全部;缺出一个字段后,它们保持不变)。 一体化
全权证书及全权证书 settings.requirements 从未进口.
终端状态可以在其快照附后前到达. 偏爱 waitForRunSnapshot 之后
投票:它简短地重复附件,返回 content: null 当没有生产出任何文物的时候,
并保留下载/读取失败为错误,而不是将其误认为是空运行.
关于快照下载的说明 : 只在下载 URL 时发送无记名符号
同一来源 baseUrl。在没有认证的情况下获取一个跨源的URL(例如,预先签名的S3链接),
所以信使永远不会泄露给第三方主机.
云运行和内容创建请求,即使呼叫者提供
取消信号。 最后期限包括消耗反应机构,以及暂停/调用者破坏
错误仍可与 ApiError 回应.
说明 createProject数字 : 这是无头对应器 uploadNotebook,使用
未认证 /v1/import 端点,因此必须在浏览器中完成. 带着一个标志,
首选项 createProject ——它还原出新的id,以便你立即运行笔记本.
两个API细节通过它泄露. POST /v2/projects 种子新工程,带有空占位符
笔记本,什么 createProject 一旦您的名称存在, 删除( 没有终点可重命名); a
无法删除的占位符通过 onWarning 而不是失败的创造。 还有
没有块块的终点,所以块块每个需要一个相继请求——使用 onProgress 报告
在一个大笔记本上。 中途失败的创建会留下部分内容:没有交易.
许可证
阿帕奇 - 2.0