本文整理汇总了Python中cola.diffparse.DiffParser类的典型用法代码示例。如果您正苦于以下问题:Python DiffParser类的具体用法?Python DiffParser怎么用?Python DiffParser使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DiffParser类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: do
def do(self):
parser = DiffParser(self.model.filename, self.model.diff_text)
if self.has_selection:
patch = parser.generate_patch(self.first_line_idx,
self.last_line_idx,
reverse=self.reverse)
else:
patch = parser.generate_hunk_patch(self.first_line_idx,
reverse=self.reverse)
if patch is None:
return
cfg = gitcfg.current()
tmp_path = utils.tmp_filename('patch')
try:
core.write(tmp_path, patch,
encoding=cfg.file_encoding(self.model.filename))
if self.apply_to_worktree:
status, out, err = self.model.apply_diff_to_worktree(tmp_path)
else:
status, out, err = self.model.apply_diff(tmp_path)
finally:
os.unlink(tmp_path)
Interaction.log_status(status, out, err)
self.model.update_file_status(update_index=True)
示例2: do
def do(self):
if self.model.mode == self.model.mode_branch:
# We're applying changes from a different branch!
parser = DiffParser(self.model,
filename=self.model.filename,
cached=False,
branch=self.model.head)
status, output = \
parser.process_diff_selection(self.selected,
self.offset,
self.selection,
apply_to_worktree=True)
else:
# The normal worktree vs index scenario
parser = DiffParser(self.model,
filename=self.model.filename,
cached=self.staged,
reverse=self.apply_to_worktree)
status, output = \
parser.process_diff_selection(self.selected,
self.offset,
self.selection,
apply_to_worktree=
self.apply_to_worktree)
_notifier.broadcast(signals.log_cmd, status, output)
# Redo the diff to show changes
if self.staged:
diffcmd = DiffStaged([self.model.filename])
else:
diffcmd = Diff([self.model.filename])
diffcmd.do()
self.model.update_file_status()
示例3: test_diff
def test_diff(self):
fwd = helper.fixture("diff.txt")
reverse = helper.fixture("diff-reverse.txt")
source = DiffSource(fwd, reverse)
model = DiffParseModel()
parser = DiffParser(model, filename="", cached=False, reverse=False, diff_source=source)
self.assertEqual(parser.offsets(), [916, 1798, 2550])
self.assertEqual(parser.spans(), [[0, 916], [916, 1798], [1798, 2550]])
diffs = parser.diffs()
self.assertEqual(len(diffs), 3)
self.assertEqual(len(diffs[0]), 23)
self.assertEqual(diffs[0][0], "@@ -6,10 +6,21 @@ from cola import gitcmds")
self.assertEqual(diffs[0][1], " from cola import gitcfg")
self.assertEqual(diffs[0][2], " ")
self.assertEqual(diffs[0][3], " ")
self.assertEqual(diffs[0][4], "+class DiffSource(object):")
self.assertEqual(len(diffs[1]), 18)
self.assertEqual(diffs[1][0], "@@ -29,13 +40,11 @@ class DiffParser(object):")
self.assertEqual(diffs[1][1], " self.diff_sel = []")
self.assertEqual(diffs[1][2], " self.selected = []")
self.assertEqual(diffs[1][3], " self.filename = filename")
self.assertEqual(diffs[1][4], "+ self.diff_source = diff_source or DiffSource()")
self.assertEqual(len(diffs[2]), 18)
self.assertEqual(diffs[2][0], "@@ -43,11 +52,10 @@ class DiffParser(object):")
示例4: test_diff_at_start
def test_diff_at_start(self):
fixture_path = helper.fixture('diff-start.txt')
parser = DiffParser('foo bar/a', core.read(fixture_path))
hunks = parser.hunks
self.assertEqual(hunks[0].lines[0], '@@ -1 +1,4 @@')
self.assertEqual(hunks[-1].lines[-1], '+c')
self.assertEqual(hunks[0].old_start, 1)
self.assertEqual(hunks[0].old_count, 1)
self.assertEqual(hunks[0].new_start, 1)
self.assertEqual(hunks[0].new_count, 4)
self.assertEqual(parser.generate_patch(1, 3),
'--- a/foo bar/a\n'
'+++ b/foo bar/a\n'
'@@ -1 +1,3 @@\n'
' bar\n'
'+a\n'
'+b\n')
self.assertEqual(parser.generate_patch(0, 4),
'--- a/foo bar/a\n'
'+++ b/foo bar/a\n'
'@@ -1 +1,4 @@\n'
' bar\n'
'+a\n'
'+b\n'
'+c\n')
示例5: test_diff_that_empties_file
def test_diff_that_empties_file(self):
fixture_path = helper.fixture('diff-empty.txt')
parser = DiffParser('filename', core.read(fixture_path))
hunks = parser.hunks
self.assertEqual(hunks[0].lines[0],
'@@ -1,2 +0,0 @@')
self.assertEqual(hunks[-1].lines[-1],
'-second')
self.assertEqual(hunks[0].old_start, 1)
self.assertEqual(hunks[0].old_count, 2)
self.assertEqual(hunks[0].new_start, 0)
self.assertEqual(hunks[0].new_count, 0)
self.assertEqual(parser.generate_patch(1, 1),
'--- a/filename\n'
'+++ b/filename\n'
'@@ -1,2 +1 @@\n'
'-first\n'
' second\n')
self.assertEqual(parser.generate_patch(0, 2),
'--- a/filename\n'
'+++ b/filename\n'
'@@ -1,2 +0,0 @@\n'
'-first\n'
'-second\n')
示例6: do
def do(self):
# The normal worktree vs index scenario
parser = DiffParser(self.model,
filename=self.model.filename,
cached=self.staged,
reverse=self.apply_to_worktree)
status, out, err = \
parser.process_diff_selection(self.offset,
self.selection_text,
apply_to_worktree=self.apply_to_worktree)
Interaction.log_status(status, out, err)
self.model.update_file_status(update_index=True)
示例7: test_diff_at_end
def test_diff_at_end(self):
fwd = helper.fixture('diff-end.txt')
reverse = helper.fixture('diff-end-reverse.txt')
source = DiffSource(fwd, reverse)
model = DiffParseModel()
parser = DiffParser(model, filename='',
cached=False, reverse=False,
diff_source=source)
self.assertEqual(parser.diffs()[0][0], '@@ -1,39 +1 @@')
self.assertEqual(parser.offsets(), [1114])
self.assertEqual(parser.spans(), [[0, 1114]])
示例8: test_diff_at_start
def test_diff_at_start(self):
fwd = helper.fixture('diff-start.txt')
reverse = helper.fixture('diff-start-reverse.txt')
source = DiffSource(fwd, reverse)
model = DiffParseModel()
parser = DiffParser(model, filename='',
cached=False, reverse=False,
diff_source=source)
self.assertEqual(parser.diffs()[0][0], '@@ -1 +1,4 @@')
self.assertEqual(parser.offsets(), [30])
self.assertEqual(parser.spans(), [[0, 30]])
self.assertEqual(parser.diffs_for_range(0, 10),
([u'@@ -1 +1,4 @@\n bar\n+a\n+b\n+c\n\n'],
[0]))
示例9: do
def do(self):
# The normal worktree vs index scenario
parser = DiffParser(
self.model, filename=self.model.filename, cached=self.staged, reverse=self.apply_to_worktree
)
status, output = parser.process_diff_selection(
self.selected, self.offset, self.selection, apply_to_worktree=self.apply_to_worktree
)
_notifier.broadcast(signals.log_cmd, status, output)
# Redo the diff to show changes
if self.staged:
diffcmd = DiffStaged([self.model.filename])
else:
diffcmd = Diff([self.model.filename])
diffcmd.do()
self.model.update_file_status()
示例10: test_diff_at_start
def test_diff_at_start(self):
fwd = helper.fixture("diff-start.txt")
reverse = helper.fixture("diff-start-reverse.txt")
source = DiffSource(fwd, reverse)
model = DiffParseModel()
parser = DiffParser(model, filename="", cached=False, reverse=False, diff_source=source)
self.assertEqual(parser.diffs()[0][0], "@@ -1 +1,4 @@")
self.assertEqual(parser.offsets(), [30])
self.assertEqual(parser.spans(), [[0, 30]])
self.assertEqual(parser.diffs_for_range(0, 10), ([u"@@ -1 +1,4 @@\n bar\n+a\n+b\n+c\n\n"], [0]))
self.assertEqual(parser.ranges()[0].begin, [1, 1])
self.assertEqual(parser.ranges()[0].end, [1, 4])
self.assertEqual(parser.ranges()[0].make(), "@@ -1 +1,4 @@")
示例11: test_diff_that_empties_file
def test_diff_that_empties_file(self):
fwd = helper.fixture("diff-empty.txt")
reverse = helper.fixture("diff-empty-reverse.txt")
source = DiffSource(fwd, reverse)
model = DiffParseModel()
parser = DiffParser(model, filename="", cached=False, reverse=False, diff_source=source)
self.assertEqual(parser.diffs()[0][0], "@@ -1,2 +0,0 @@")
self.assertEqual(parser.offsets(), [33])
self.assertEqual(parser.spans(), [[0, 33]])
self.assertEqual(parser.diffs_for_range(0, 1), ([u"@@ -1,2 +0,0 @@\n-first\n-second\n\n"], [0]))
self.assertEqual(parser.ranges()[0].begin, [1, 2])
self.assertEqual(parser.ranges()[0].end, [0, 0])
self.assertEqual(parser.ranges()[0].make(), "@@ -1,2 +0,0 @@")
示例12: test_diff_at_end
def test_diff_at_end(self):
fwd = helper.fixture("diff-end.txt")
reverse = helper.fixture("diff-end-reverse.txt")
source = DiffSource(fwd, reverse)
model = DiffParseModel()
parser = DiffParser(model, filename="", cached=False, reverse=False, diff_source=source)
self.assertEqual(parser.diffs()[0][0], "@@ -1,39 +1 @@")
self.assertEqual(parser.offsets(), [1114])
self.assertEqual(parser.spans(), [[0, 1114]])
self.assertEqual(parser.ranges()[0].begin, [1, 39])
self.assertEqual(parser.ranges()[0].end, [1, 1])
self.assertEqual(parser.ranges()[0].make(), "@@ -1,39 +1 @@")