如何使用python WikEdDiff?

如何使用python WikEdDiff?,python,package,diff,Python,Package,Diff,我最近在我的系统中安装了pythonwikeddiff软件包。我知道它是原始JavaScript WikEdDiff工具的python扩展。我试图使用它,但找不到任何文档。我一直在使用WikEdDiff.diff()。我希望使用该类的其他函数,例如getFragments()和其他函数,但在检查时,它显示以下错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> Fil

我最近在我的系统中安装了
pythonwikeddiff
软件包。我知道它是原始JavaScript WikEdDiff工具的python扩展。我试图使用它,但找不到任何文档。我一直在使用
WikEdDiff.diff()
。我希望使用该类的其他函数,例如
getFragments()
和其他函数,但在检查时,它显示以下错误:

 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/dist-packages/WikEdDiff/diff.py", line 1123, in detectBlocks
    self.getSameBlocks()
  File "/usr/local/lib/python3.4/dist-packages/WikEdDiff/diff.py", line 1211, in getSameBlocks
    while j is not None and self.oldText.tokens[j].link is None:
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python3.4/dist-packages/WikEdDiff/diff.py”,第1123行,位于detectBlocks中
self.getSameBlocks()
文件“/usr/local/lib/python3.4/dist-packages/WikEdDiff/diff.py”,第1211行,在getSameBlocks中
而j不是None和self.oldText.tokens[j]。链接是None:
索引器:列表索引超出范围
检查时,我发现对象中的
tokens[]
结构仍然是空的,而它应该已经初始化


除了默认构造函数之外,是否还有需要调用的初始化函数?还是与我传递给构造函数的'WikEdDiffConfig'配置结构有关?

出现此错误是因为
WikEdDiff
对象在
diff()
内部被清除,如代码中所示:

def diff( self, oldString, newString ):
    ...
    # Free memory
    self.newText.tokens.clear()
    self.oldText.tokens.clear()
    # Assemble blocks into fragment table
    fragments = self.getDiffFragments()
    # Free memory
    self.blocks.clear()
    self.groups.clear()
    self.sections.clear()
    ...
    return fragments
如果只需要片段,请使用返回的变量
diff()
,如下所示:

import WikEdDiff as WED
config=WED.WikEdDiffConfig()
w = WED.WikEdDiff(config)
f = w.diff("abc", "efg")
# do whatever you want with f, but don't use w
print(' '.join([i.text+i.type for i in f]))
# outputs '{ [ (> abc-  ) abc< efg+ ] }'
按周三导入WikEdDiff
config=WED.wikeddifffconfig()
w=WED.WikEdDiff(配置)
f=w.diff(“abc”、“efg”)
#用f做你想做的,但不要用w
打印(“”.join([i.text+i.type代表f中的i]))
#输出“{[(>abc-)abc
这里有一个python3示例查看源代码: