Graham Dumpleton:为JupyterLab撰写... 笔记

Graham Dumpleton:为JupyterLab撰写工作坊

本文介绍了一个专注于教授 pytest 的 JupyterLab 工作坊的创建过程。该工作坊规模小巧,足以容纳在一篇博客文章中,却包含了真实工作坊的所有核心要素。它包括一个清单(manifest)、多个页面、交互式操作、自动检查、测验以及配套工具。该工作坊教授 pytest 的基本循环:编写测试、观察其失败,然后修复代码。这一迭代过程被结构化地分布在工作坊的四个独立页面中。一个关键特性是为工作坊创建一个隔离的 Python 环境,确保 pytest 的安装不会影响学习者的系统。这种方法借鉴了之前一次会议演讲中的内容课程,以提升学习体验。过程始于规划并定义可验证的步骤,从而将工作坊与教程区分开来。工作坊通过 jupyter workshop init 命令生成,该命令设置目录结构并创建清单文件。清单中声明了诸如终端访问、文件写入、代码执行和包安装等能力,并由代码检查器(linters)进行验证。清单中的 environment 字段指定了依赖项(如 pytest),这些依赖项将被安装到一个自包含的虚拟环境中。这避免了手动环境配置,使学习者能够专注于 pytest 本身。清单中的 env 条目还禁用了 Python 字节码缓存,以防止因快速修改文件而引发问题。该工作坊利用 files/orders.py 文件,其中包含一个故意存在缺陷的函数供学习者调试。工作坊中的每个页面均使用 Markdown 和特定的操作块来引导学习者完成诸如打开文件、编写代码和运行命令等任务。检查通过 verify 操作实现,该操作自动验证学习者操作的结果,确保学习进度和效果。此外,包含一个 quiz 操作,促使学习者在运行测试之前预测结果,从而强化对 pytest 行为机制的理解。editor-insert 操作允许直接在新代码(如测试)中添加并查看代码。该工作坊的结构和内容旨在实现交互性和教育性,聚焦于 pytest 的实际应用。
CdXz5zHNQW_hkEwNEOUhk.png