如何在两个对象之间手动发送wbrevi?

2024-04-24 00:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

如何创建两个json对象的diff,使它们以手动diff格式发送到reviewboard?我需要从python脚本内部生成diff,我认为手动diff是使用“diff file1 file2”命令行实用程序生成的。使用兼容的WBREVI可以生成类似的diffrevi吗?或者我需要另一个图书馆吗?谢谢!在


Tags: 对象命令行实用程序脚本json图书馆格式diff
2条回答

使用difflib:

def show_diff(seqm):
    output= []
    for opcode, a0, a1, b0, b1 in seqm.get_opcodes():
        if opcode == 'equal':
            output.append(seqm.a[a0:a1])
        elif opcode == 'insert':
            output.append("<ins>" + seqm.b[b0:b1] + "</ins>")
        elif opcode == 'delete':
            output.append("<del>" + seqm.a[a0:a1] + "</del>")
        elif opcode == 'replace':
            output.append("<del>" + seqm.a[a0:a1] + "</del>" + "<ins>" + seqm.b[b0:b1] + "</ins>" )
        else:
            raise RuntimeError, "Unexpected opcode"
    return ''.join(output)

在您的情况下,可以比较json文件(我只是使用了伪文本):

^{pr2}$

如果需要difflib的不同输出,请查看documentation

我只是认为在使用diff之前,应该按照字母和数字顺序重新格式化JSON对象。在

相关问题 更多 >