经过一些实验,我得出结论,最好通过处理笔记本的JSON代码来解决这个问题。版本控制系统不是正确的方法,原因如下:添加或删除单元格时使用JSONdoesn't diff very well。微小的改变会导致大括号不匹配和非常混乱的差异。

在我的用例中,文件的超集版本(包含赋值及其解决方案)必须是源文档。这是因为作业中包含了示例代码和依赖于前面部分的输出,由学生编写。正如@ChrisPhillips在他的回答中指出的那样,这个模型不能很好地处理版本控制。

最后,我过滤了笔记本的JSON结构并剥离出了解决方案单元格;它们可以通过特殊的元数据(可以使用界面中的metadata按钮交互设置),或者通过单元格内容的模式匹配来识别。下面的代码片段演示如何筛选出第一行以# SOLUTION:开头的单元格def stripcell(cell, pattern):

"""Check if the first line of the cell's content matches `pattern`"""

if cell["cell_type"] == "code":

content = cell["input"]

else:

content = cell["source"]

return ( len(content) > 0 and re.search(pattern, content[0]) )

pattern = r"^# SOLUTION:"

struct = json.load(open("input.ipynb"))

cells = struct["worksheets"][0]["cells"]

struct["worksheets"][0]["cells"] = [ c for c in cells if not stripcell(c, pattern) ]

json.dump(struct, open("output.ipynb", "wb"), indent=1)

我使用了通用的json库,而不是笔记本API。如果有更好的办法,请告诉我。

ipython版本_维护ipython noteb的两个版本相关推荐

  1. ipython是_关于 IPython 的简介

    IPython 是 Python shell 的增强版,它鼓励一种「执行-探索」式(execute explore) 的工作模式,而不是其他许多语言那种「编辑-编译-运行」(edit-compile- ...

  2. python2和python3分别是python的两个版本_Windows下Python2与Python3两个版本共存的方法详解...

    前言 一向用Python 3,最近研究微信公众号开发,各云平台只支持Python 2.7,想用其他版本需要自己搭建环境.而网上又搜不到Python 3开发微信公众号的资料.暂打算先使用Python 2 ...

  3. 无法安装64位版本的office_手机微信有两个版本,32位和64位,你的微信是多少位?...

    之前我就为大家分享了,如何查看自己的微信是32位还是64位,我们只需要在微信的设置-关于微信,进入后我们只需要将版本号上的微信图标双击就能查看了,如下图所示: 如果你的微信这里显示为 armeabi- ...

  4. 选择java版本_新手上路之如何选择Java版本

    导读热词 @ 初入Java坑,有那么多版本的Java,想了解清楚自己到底该下什么版本这个问题,首先得了解清楚LTS与非LTS的区别 LTS与非LTS 每一次去官网下载JDK的时候,当你进入到Java ...

  5. 当前主要使用的python版本_如何获取当前使用的Python版本信息?(代码示例)

    本篇文章主要给大家介绍如何获取当前Python版本,希望对需要的朋友有所帮助! 版本信息: 包含版本号的五个组件的元组:major,minor,micro,releaselevel和serial.除r ...

  6. node更新到最新版本_云顶之弈10.24版本临时更新永恩、劫大砍,最新上分阵容推荐...

    阵容决定下限,装备决定上限,细节决定成败,运营才是王道.大家好我是摩昂. 今天下午6点官网发出公告,云顶之弈进行不停机更新,对平衡性与BUG进行修复.以下为更新内容. 更新改动 上图来源:英雄联盟官网 ...

  7. 苹果微信更新不了最新版本_苹果iOS用户更新微信至版本7.0.13,可以进行微信号修改支持一年修改一次...

    今日,微信官方表示,苹果iOS用户更新微信至版本7.0.13,可以进行微信号修改支持一年修改一次,入口位于"我"-"个人信息"-"微信号", ...

  8. 暂无支持此机型的手机版本_华为AR地图发布重要更新版本 新增对8款机型的支持...

    12月23日,华为正式发布了nova8系列以及MateBook D系列2021款等多款新品,出色的硬件配置让不少网友都心动了.在更新完硬件产品之外,华为也发布了华为AR地图的最新版本,新增了对8款机型 ...

  9. java 安装多版本_一台电脑安装多个版本的jdk

    一台电脑安装多个版本的jdk 我们平时在做Java开发的时候,有时需要使用多个版本的jdk, 那么一台电脑上需要安装多个JDK了. 那一台电脑上可不可以同时安装多个版本的jdk呢? 答案是可以的! 但 ...

最新文章

  1. 装运点确认失败的排查
  2. python上传excel文件_flask上传excel文件,无须存储,直接读取内容
  3. 火力发电厂与变电站设计防火规范_2019年《建筑设计防火规范》新版征求意见稿...
  4. vue的 v-for 循环中图片加载路径问题
  5. powerbi导入地图_Power BI系列教程之powerBI功能介绍及使用导引(一)
  6. windows mysql 和linux mysql解决乱码问题
  7. c语言程序设计第3版高等教育,C语言程序设计第三3版 何钦铭 颜晖 高等教育出版社 9787040432...
  8. Python打印九九乘法表
  9. 苹果手表计算机功能键,认识Mac的功能键,最值得你记住的苹果电脑快捷键列表...
  10. 多元统计分析最短距离法_多元统计分析-聚类分析
  11. 实现Excel单元格中的下拉选项和数据有效性
  12. Touchbar Pet 0.8.2 最新版 (Touch Bar触控栏养宠物)
  13. c语言自学考1课后答案,C语言理论练习题(1)及参考答案
  14. 北京智源大会 | AI + 医疗的下一个十年:从公共卫生预警到人类基因密码解析 道翰天琼认知智能api机器人接口。
  15. python shp文件_对python 读取线的shp文件实例详解
  16. Merge用法:Oracle 10g中对Merge语句的增强
  17. TexturePacker序列号申请
  18. Liunx yun 安装 mysql5.7
  19. resnet50中的bottleneck
  20. 【转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束

热门文章

  1. Matlab中使用psychtoolbox编写刺激界面
  2. python发送邮件 SMTP socks代理
  3. 国考特殊专业职位证监计算机类,报考2018年国考证监会,这些事情你要知道!...
  4. 火车头不能用mysql_火车头采集器发布失败常见问题汇总
  5. 算法:割绳子问题(字节跳动2019笔试)
  6. 通过z39.50协议用YAZ软件获取Marc数据(JAVA版)
  7. 服务器关闭微软小娜,言而无信: 微软悄悄将小娜的禁用网络搜索选项废弃
  8. 【新人入门】HTML——前端纯小白新手入门
  9. 如何下载Windows 10?Windows 10微软官方下载地址、下载官方最新的Windows 10操作系统的具体步骤
  10. squirrelSql小松鼠数据库连接工具的安装以及连接informix(系列3,squirrelSql作为客户端连接)