用于在树状数据结构之间进行diff运算的实用函数库。

treediffer的Python项目详细描述


树人

versionbuildcodecovpypidocs

一个实用函数库,用于计算树状数据结构之间的差异。在

安装

pip install treediffer

使用示例

给定studio tree JSON存档版本maintreestagingtree 使用./contentcuration/manage.py archivechannel ...生成的Studio频道, 可以使用以下方法计算它们之间的树差异:

^{pr2}$

此代码示例使用基于设置的studio预置的“高级”API 所有必要的查找(node_id、content_id、parent、assertment_items等) 因此,差异逻辑会起作用。完整脚本请参见examples/studiodiffferpoc.py。在

稻谷树分化

请参见examples/ricecookerdiffpoc.py以了解区分ricecooker树的类似脚本 在每个内容集成脚本运行后保存在chefdata/trees/目录中。在

可选diff格式

使用format="restructured"对简化的差异和组添加进行后处理 以及删除到逻辑子树中(例如,如果整个主题被删除,则显示为子树)。 这是在命令行上打印时的默认设置,如示例脚本中所示。在

在简化和移动检测(用于调试)之前,使用format="raw"查看差异。在

测试

pytest

以及

pytest --cov=src/treediffer tests/

文件

请访问https://treediffer.readthedocs.io/以了解有关如何工作的更多信息 {尤其是^见^ 关于diff的结构和 https://treediffer.readthedocs.io/en/latest/design.html用于API高级用法。在

待办事项

  • [x] 完成基本功能
  • [x] 添加示例ricecooker Difference
  • [x] 添加示例工作室差异
  • []添加组合删除、添加、移动和修改的厨房水槽测试

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit有没有办法在Java中重新初始化静态类?   在浏览器中点击应用程序时java Play框架挂起   文件Java错误中的NullPointerException   使用Java中的SNMP查找网络中计算机的登录名   java包装服务器引导程序已弃用,有什么替代方案?   当客户在等待理发时,java信号量值是否存在问题?   java如何使用JavaMail仅下载特定类型的附件   如何在java中将十进制转换为十六进制   java Slick2D粒子系统不会生成粒子   java检测更改事件来自何处   将Java集合类型参数类设置为数组   java如何从eclipse导出为可运行JAR文件?   java EntityManager对象未注入Glassfish和Spring   swing从actionPerformed和actionListener Java返回字符串   java在给定另一个等价键对象的情况下获取映射项的当前键   无论输入如何,java网络都会产生相同的输出