Jupytext 笔记本配对
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/pair-jupyter-notebooks-with-plain-text-files-so-review-and-agent-edits-stay-readable-with-jupytext。
技能介绍
问题:笔记本 JSON 让审查与协作变重
Jupyter 笔记本整体以 JSON 存储,单元格里混杂了代码、输出、图片的 base64 编码和元数据。一次简单编辑在 Git diff 中可能膨胀成数百行,审查者很难看清逻辑上究竟改了什么;自动化代理直接编辑笔记本 JSON 时,既可能破坏结构,生成的补丁也几乎不可读。团队往往只能在放弃版本控制和接受不可审查的历史之间二选一。
核心思路:给笔记本配一份纯文本副本
这个技能借助 jupytext 为每个笔记本维护一个平行的纯文本表示——.py 或 .md 文件,并让两者保持同步,任一侧的修改都会反映到另一侧。
关键能力与步骤:
- 格式映射:笔记本可编码为
py:percent等格式,.py文件用百分比标记划分代码与输出,看起来就像一份普通脚本。 - 编辑器集成:在 JupyterLab 中激活 Jupytext 后,
.py和.md文件会带笔记本图标,右键即可当作笔记本打开。 - 工作流迁移:开发者可以在纯文本上做版本控制、diff 和重构;审查者读
.py或.md的 diff 就能看懂改动;代理编辑的对象是可读文本,而不是脆弱的 JSON 结构。
适用边界与注意点
- 该方案依赖
jupytext的同步机制,笔记本与文本表示必须成对管理,只改一侧可能产生不一致。 py:percent等格式会把单元格边界和部分输出编码进文本,并非所有笔记本元素都能无损映射。- 需要 JupyterLab 或 Jupyter Notebook 环境支持,重启服务器后应确认 Jupytext 已生效。
- 对输出密集、含富媒体的笔记本,首次转换后需要检查文本表示的可读性。
使用场景
- 团队用 Git 管理数据分析笔记本,希望代码改动能以纯文本 diff 被审查,而不是整段 JSON 变更
- 自动化代理批量修改笔记本中的分析逻辑时,直接改 JSON 容易出错,想改为操作可读的 .py 文件
- 笔记本混入大量输出和图片后难以看清逻辑改动,想改用纯文本表示逐段比对
- 项目同时维护 .py 脚本和 .ipynb 笔记本,需要两者保持同步,避免只改一侧造成不一致
适合人员
- 用 Git 管理 Jupyter 笔记本的数据分析工程师,想让每次代码改动都能被清晰审查
- 负责维护大量分析笔记本的技术团队负责人,需要在合并前快速看懂别人改了什么
- 为 AI 代理准备可编辑任务的工程师,想让代理直接读写可读的 .py 文件而不是笔记本 JSON
- 既写 .py 脚本又跑 .ipynb 笔记本的数据科学从业者,需要两条线内容保持一致