教师创建 Jupyter 笔记本模板的有用工具。
项目描述
jupyter-instructortools
简介| 当前菜单项| 典型工作流程| 安装| 更改日志| 问题或意见| 执照
介绍
这为 Jupyter 添加了一个菜单,该菜单可以自动执行教师在为作业构建笔记本模板时可能想要执行的一些有用任务。这是 Jupyter 物理科学实验室项目的一部分。
当前菜单项:
该菜单由 python 命令激活import InstructorTools。
- 创建数据输入表。
- 表格列和行标签一旦设置就可以锁定。
- 必须在初始创建时选择行数和列数。
- 表将在删除所有单元格输出数据后保留下来。
- 默认设置是使创建表的代码单元格受到保护。
- 如果没有在 Jupyter 内核中安装此包,表创建代码将正常工作。在普通的 Jupyter 安装中,表格是可见的,但不可编辑。
- 这使用
jupyter-datainputtable包。
- 将一些高亮条添加到选定的降价单元格。这些可以通过删除相关的来删除
<div>:- 单元格左侧的垂直青色括号。
- 单元格左侧的垂直红色括号。
- 一个水平的绿色开始条(逐渐变黄)。用于指示指令块的开始。
- 一个水平的棕色停止条(从黄色渐变为棕色)。用于指示指令块的结束。
- 保护/取消保护选定的单元格。用户不能编辑或删除受保护的单元格。这是防止指令和示例代码被学生破坏的好方法。
- 将选定的单元格设置/取消设置为允许隐藏。这可用于在生成要上交的 pdf 之前标记要隐藏的单元格。
- 设置/取消设置所选单元格以在打印前隐藏代码。
- 设置/取消设置选定的单元格以隐藏 JPSL 中的代码。
- 暂时突出显示每种“隐藏/隐藏”单元格。
- 在使工作表可用之前,从笔记本中删除讲师工具。
- 删除讲师工具并防止在笔记本中重新安装。
- 插入代码以自动为笔记本添加时间戳并从学生那里收集姓名。代码插入到当前选定单元格的末尾。单元格将受到保护,不会被编辑和删除。这是一个包含初始化导入的好单元。
- 插入带有关于初始化笔记本的样板指令的降价单元格。此单元格将插入到所选单元格的下方。将其插入到初始化和时间戳单元的正上方。然后编辑以满足您的需求。
典型工作流程
在包含此工具以及学生可以使用的所有工具的虚拟环境中工作。这可能最好使用 JPSLInstructor 伪包来完成。如果您想分段执行此操作,请参阅安装 以获取有关设置虚拟环境和仅安装此软件包的信息。
- 启动 jupyter notebook 服务器(从命令行
jupyter notebook)。 - 打开一个新笔记本并
import InstructorTools在第一个单元格中键入。运行单元格。 - 构建练习,包括说明、示例、表格(使用菜单)和导入。
- 将所有必要的导入收集到一个代码单元中,该代码单元将成为工作表中的第一个代码单元。在此单元格之前,您可能需要介绍性材料。
- 使用菜单向此初始化单元格添加命令以获取学生姓名并为笔记本添加时间戳。这将同时保护细胞。
- 使用菜单保护您不希望学生意外更改的任何单元格。
- 使用菜单标记单元格,以便隐藏它们。这允许学生打印笔记本的压缩版本进行评分。考虑隐藏大部分说明。
- 重新启动内核并清除所有单元输出。删除或清空任何包含您希望学生填写的内容的单元格。
- 保存笔记本并复制一份。继续使用副本。
- 像学生一样浏览笔记本,随时进行调整。迭代重新启动内核,清除单元输出,保存,复制和工作直到满意为止。
- 保存工作表的最终版本。复制它。
- 打开重复的工作表。确保清除所有适当的单元格数据。然后
!deactivate permanently!从讲师工具菜单中选择。这将停用菜单并阻止学生轻松重新安装它。保存笔记本并将此副本分发给学生。
安装
生产
选项 1:推荐,因为这将安装讲师需要的所有 Jupyter 物理科学实验室软件包。使用 JPSLInstructor 伪包。
选项 2:仅安装此软件包及其要求。
建议使用 pip 安装到虚拟环境中。
- 如果未安装,请安装 pipenv:
pip3 install --user pipenv。您可能需要添加~/.local/bin到您的命令外壳PATH中才能pipenv使用。更多讨论: Python Hitchhiker 指南。 - 导航到将安装此软件包的目录。
- 在环境中启动一个shell
pipenv shell。 - 使用 pip 安装。
pip install jupyter-instructortools. 如果您的计算机上还没有 Jupyter,这会将 Jupyter 安装到相同的虚拟环境中。如果已安装 Jupyter,则虚拟环境将使用现有安装。这在 Raspberry Pi 上需要很长时间。如果没有至少 1 GB 的交换空间,它将无法在 3B+ 上运行。请参阅:在 Pi 上构建 Jupyter。- 仍然在环境 shell 中通过启动 jupyter 来测试它
jupyter notebook。Jupyter 应该在您的浏览器中启动。- 使用默认 (Python 3) 内核打开一个新笔记本。
- 在第一个单元格中导入 InstructorTools 模块:
import InstructorTools - 该
InstructorTools菜单应添加到 Jupyter 菜单栏中。
- 可选当您是用户时,您可以将此环境作为特殊内核提供给备用 Jupyter 安装。
- 确保您在虚拟环境
pipenv shell目录中运行虚拟环境将执行此操作。 - 发出命令将其作为内核添加到您的个人空间:
python -m ipykernel install --user --name=<name-you-want-for-kernel>. - Jupyter/Ipython 文档中提供了更多信息。可以在这里找到Nikolai Jankiev(参数化思想)的简单教程。
- 确保您在虚拟环境
选项 3:仅用于 Jupyterhub 上的一个帐户(仅限讲师)。
建议安装为帐户主目录中的文件夹。
- 从 PyPi下载最新版本的 .tar.gz或从 github下载 .gz 。
- 将此压缩文件传输到将在其中使用的帐户的主目录。
- 打开终端并解压缩存档。
- 将文件夹从标题为“InstructorTools”的解压缩存档移动到帐户的主目录。这些工具现在应该可以导入到此帐户中运行的任何笔记本中。
发展
只需在生产说明中替换 pip install jupyter-instructortools为
。 pip install -e ../jupyter-instructortools
更改日志
- 0.6.1
- 更新使用上游错误修复的要求。
- 0.6.0
- 转换为显示在菜单栏中而不是工具栏中的分层菜单。
- 0.5.6.2
- 简化了高亮条的样式,以减少降价单元格清理的机会,使它们不显示。
- 将高光转换为看起来更像括号。
- 添加了红色左括号突出显示的选项。
- 需要笔记本版本 >= 6.4.10 才能进行安全修复。
- 0.5.6.1 要求笔记本版本 >=6.4.7 用于 html 样式和安全修复。
- 0.5.6
- 扩展的高亮栏选项以插入到降价单元格中:水平绿色开始;水平棕色停止;左垂直铬蓝色突出显示(仅适用于 Chrome 浏览器)。
- 将笔记本版本固定为 6.4.0,因为 6.4.1+ 已开始从降价单元格中剥离所有 html 样式。
- 0.5.5
- 添加了将单元格标记为 hide_code_on_print 的选项。
- 添加了将单元格标记为 hide_code 的选项(在 JPSL 中自动隐藏)。
- 添加了突出显示这些单元格的功能。
- 0.5.4 小错误修复和界面调整。
- 0.5.3
- 添加了将单元格标记为允许隐藏的选项。
- 增加了测试隐藏/显示单元格的能力。
- 添加了在降价单元格左侧放置浅蓝色高亮条的功能。
- 自述文件更新。
- 0.5.2 更好的消息和自述文件更新。
- 0.5.1
- 添加了永久停用菜单选项。
- 添加了获取名称和时间戳选项。
- 添加了关于初始化笔记本选项的插入样板。
- 开始将 JPSLUtils 用于 JupyterPhysSciLab 中使用的工具。
- 更新了自述文件,包括建议的工作流程、许可证和更多详细信息。
- 0.5.0 初始版本。
问题或意见
问题或错误应通过项目的问题页面报告。
该软件在 GNU V3 许可下分发
本程序是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证条款重新分发和/或修改它,许可证的第 3 版或(由您选择)任何更高版本。分发此程序的目的是希望它有用,但不提供任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关详细信息,请参阅 GNU 通用公共许可证。
版权所有 - 乔纳森·古托,2020 年,2021 年。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
jupyter-instructortools-0.6.1.tar.gz
(9.1 kB
查看哈希)
内置分布
关
jupyter_instructortools -0.6.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | d05d266da79a4a8460a3cff87a99a828f948da67a8a638c810fd254d78271602 |
|
| MD5 | c44e7186d173dc90b03021da428339ec |
|
| 布莱克2-256 | 0ddeee233da03c888ba6f7924a2a97fcaef9529fbe9d0f4c9e07da02f37c24ea |