Python difflib.context_diff() Examples
The following are 30
code examples of difflib.context_diff().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
difflib
, or try the search function
.
Example #1
Source File: diff_jsonl.py From singer-tools with Apache License 2.0 | 6 votes |
def main(): parser = argparse.ArgumentParser() parser.add_argument("file1") parser.add_argument("file2") args = parser.parse_args() lines1 = load_jsonl_file(args.file1) lines2 = load_jsonl_file(args.file2) pretty_lines1 = prettify(lines1) pretty_lines2 = prettify(lines2) for line in difflib.context_diff(pretty_lines1.splitlines(), pretty_lines2.splitlines(), fromfile=args.file1, tofile=args.file2): print(line)
Example #2
Source File: TestCmd.py From gyp with BSD 3-Clause "New" or "Revised" License | 6 votes |
def simple_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n'): """ A function with the same calling signature as difflib.context_diff (diff -c) and difflib.unified_diff (diff -u) but which prints output like the simple, unadorned 'diff" command. """ sm = difflib.SequenceMatcher(None, a, b) def comma(x1, x2): return x1+1 == x2 and str(x2) or '%s,%s' % (x1+1, x2) result = [] for op, a1, a2, b1, b2 in sm.get_opcodes(): if op == 'delete': result.append("%sd%d" % (comma(a1, a2), b1)) result.extend(map(lambda l: '< ' + l, a[a1:a2])) elif op == 'insert': result.append("%da%s" % (a1, comma(b1, b2))) result.extend(map(lambda l: '> ' + l, b[b1:b2])) elif op == 'replace': result.append("%sc%s" % (comma(a1, a2), comma(b1, b2))) result.extend(map(lambda l: '< ' + l, a[a1:a2])) result.append('---') result.extend(map(lambda l: '> ' + l, b[b1:b2])) return result
Example #3
Source File: utils.py From litex-buildenv with BSD 2-Clause "Simplified" License | 6 votes |
def _platform_toolchain_cmd_join(cmds): """ >>> cmds = _platform_toolchain_cmd_split(test_build_template) >>> out_template = _platform_toolchain_cmd_join(cmds) >>> "\\n".join(difflib.context_diff("\\n".join(test_build_template), "\\n".join(out_template))) '' >>> pprint.pprint(out_template) ['yosys -q -l {build_name}.rpt {build_name}.ys', 'nextpnr-ice40 --json {build_name}.json --pcf {build_name}.pcf', 'icepack {build_name}.txt {build_name}.bin'] """ template = [] while len(template) < len(cmds): for i, cmdline_parts in cmds.values(): if i != len(template): continue template.append(" ".join(cmdline_parts)) break else: raise ValueError("{} not found\n{}\n{}\n".format(len(template), template, cmds)) return template
Example #4
Source File: matcher.py From python-sasctl with Apache License 2.0 | 6 votes |
def match(self, request, recorded_request): recorded_request = util.deserialize_prepared_request(recorded_request) request_body = b'' if request.body: request_body = util.coerce_content(request.body) recorded_body = b'' if recorded_request.body: recorded_body = util.coerce_content(recorded_request.body) if recorded_body != request_body: diff = difflib.context_diff(recorded_body, request_body) log.debug('** Cassette Differences: **\n' + '\n'.join(diff)) return recorded_body == request_body
Example #5
Source File: test_difflib.py From android_universal with MIT License | 6 votes |
def test_mixed_types_content(self): # type of input content must be consistent: all str or all bytes a = [b'hello'] b = ['hello'] unified = difflib.unified_diff context = difflib.context_diff expect = "lines to compare must be str, not bytes (b'hello')" self._assert_type_error(expect, unified, a, b) self._assert_type_error(expect, unified, b, a) self._assert_type_error(expect, context, a, b) self._assert_type_error(expect, context, b, a) expect = "all arguments must be bytes, not str ('hello')" self._assert_type_error(expect, difflib.diff_bytes, unified, a, b) self._assert_type_error(expect, difflib.diff_bytes, unified, b, a) self._assert_type_error(expect, difflib.diff_bytes, context, a, b) self._assert_type_error(expect, difflib.diff_bytes, context, b, a)
Example #6
Source File: diff.py From oss-ftp with MIT License | 6 votes |
def main(): usage = "usage: %prog [options] fromfile tofile" parser = optparse.OptionParser(usage) parser.add_option("-c", action="store_true", default=False, help='Produce a context format diff (default)') parser.add_option("-u", action="store_true", default=False, help='Produce a unified format diff') parser.add_option("-m", action="store_true", default=False, help='Produce HTML side by side diff (can use -c and -l in conjunction)') parser.add_option("-n", action="store_true", default=False, help='Produce a ndiff format diff') parser.add_option("-l", "--lines", type="int", default=3, help='Set number of context lines (default 3)') (options, args) = parser.parse_args() if len(args) == 0: parser.print_help() sys.exit(1) if len(args) != 2: parser.error("need to specify both a fromfile and tofile") n = options.lines fromfile, tofile = args fromdate = time.ctime(os.stat(fromfile).st_mtime) todate = time.ctime(os.stat(tofile).st_mtime) fromlines = open(fromfile, 'U').readlines() tolines = open(tofile, 'U').readlines() if options.u: diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) elif options.n: diff = difflib.ndiff(fromlines, tolines) elif options.m: diff = difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n) else: diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) sys.stdout.writelines(diff)
Example #7
Source File: TestCmd.py From kawalpemilu2014 with GNU Affero General Public License v3.0 | 6 votes |
def simple_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n'): """ A function with the same calling signature as difflib.context_diff (diff -c) and difflib.unified_diff (diff -u) but which prints output like the simple, unadorned 'diff" command. """ sm = difflib.SequenceMatcher(None, a, b) def comma(x1, x2): return x1+1 == x2 and str(x2) or '%s,%s' % (x1+1, x2) result = [] for op, a1, a2, b1, b2 in sm.get_opcodes(): if op == 'delete': result.append("%sd%d" % (comma(a1, a2), b1)) result.extend(map(lambda l: '< ' + l, a[a1:a2])) elif op == 'insert': result.append("%da%s" % (a1, comma(b1, b2))) result.extend(map(lambda l: '> ' + l, b[b1:b2])) elif op == 'replace': result.append("%sc%s" % (comma(a1, a2), comma(b1, b2))) result.extend(map(lambda l: '< ' + l, a[a1:a2])) result.append('---') result.extend(map(lambda l: '> ' + l, b[b1:b2])) return result
Example #8
Source File: TestCmd.py From gyp with BSD 3-Clause "New" or "Revised" License | 6 votes |
def simple_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n'): """ A function with the same calling signature as difflib.context_diff (diff -c) and difflib.unified_diff (diff -u) but which prints output like the simple, unadorned 'diff" command. """ sm = difflib.SequenceMatcher(None, a, b) def comma(x1, x2): return x1+1 == x2 and str(x2) or '%s,%s' % (x1+1, x2) result = [] for op, a1, a2, b1, b2 in sm.get_opcodes(): if op == 'delete': result.append("%sd%d" % (comma(a1, a2), b1)) result.extend(map(lambda l: '< ' + l, a[a1:a2])) elif op == 'insert': result.append("%da%s" % (a1, comma(b1, b2))) result.extend(map(lambda l: '> ' + l, b[b1:b2])) elif op == 'replace': result.append("%sc%s" % (comma(a1, a2), comma(b1, b2))) result.extend(map(lambda l: '< ' + l, a[a1:a2])) result.append('---') result.extend(map(lambda l: '> ' + l, b[b1:b2])) return result
Example #9
Source File: VChannel.py From RENAT with Apache License 2.0 | 6 votes |
def snap_diff(self,name): """ Executes the comman that have been executed before by ``name`` snapshot and return the difference. Difference is in ``context diff`` format """ if not self._snap_buffer[name]: return False cmd_list = self._snap_buffer[name]['cmd-list'] old_buffer = self._snap_buffer[name]['buffer'] buffer = "" for cmd in cmd_list: buffer += cmd + "\n" buffer += self._cmd(cmd) diff = difflib.context_diff(old_buffer.split("\n"),buffer.split("\n"),fromfile=name+":before",tofile=name+":current") result = "\n".join(diff) BuiltIn().log(result) BuiltIn().log("Took snapshot `%s` and showed the difference" % name) return result
Example #10
Source File: Common.py From RENAT with Apache License 2.0 | 6 votes |
def diff_file(path1,path2,method=u'uniq',newline=True): """ Shows difference between files Returns the diff result (multi lines) ``path1``, ``path2`` are absolute paths. """ result = "" with codecs.open(path1,'r','utf-8') as f: f1 = f.readlines() with codecs.open(path2,'r','utf-8') as f: f2 = f.readlines() if newline and len(f1) > 0 and len(f2) > 0: f1[-1] = f1[-1]+'\n' f2[-1] = f2[-1]+'\n' diff = [] if method == 'context': diff = difflib.context_diff(f1,f2,fromfile=path1,tofile=path2) if method == 'uniq': diff = difflib.ndiff(f1,f2) result = ''.join(filter(lambda x: not x.startswith(' '),list(diff))) BuiltIn().log("Compared `%s` and `%s`" % (path1,path2)) return result
Example #11
Source File: test_helpers.py From ansigenome with GNU General Public License v3.0 | 6 votes |
def run_diff_on(the_dict, file, tag=""): """ Print a context diff on 2 strings. """ diff = [] for key, values in the_dict.iteritems(): if tag not in key: diff = list(difflib.context_diff(the_dict[key], the_dict[key + tag])) print "DIFF for {0}'s {1}:".format(key, file) if len(diff) > 0: pprint(diff) else: print "[no differences]" print
Example #12
Source File: TestCmd.py From android-xmrig-miner with GNU General Public License v3.0 | 6 votes |
def simple_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n'): """ A function with the same calling signature as difflib.context_diff (diff -c) and difflib.unified_diff (diff -u) but which prints output like the simple, unadorned 'diff" command. """ sm = difflib.SequenceMatcher(None, a, b) def comma(x1, x2): return x1+1 == x2 and str(x2) or '%s,%s' % (x1+1, x2) result = [] for op, a1, a2, b1, b2 in sm.get_opcodes(): if op == 'delete': result.append("%sd%d" % (comma(a1, a2), b1)) result.extend(map(lambda l: '< ' + l, a[a1:a2])) elif op == 'insert': result.append("%da%s" % (a1, comma(b1, b2))) result.extend(map(lambda l: '> ' + l, b[b1:b2])) elif op == 'replace': result.append("%sc%s" % (comma(a1, a2), comma(b1, b2))) result.extend(map(lambda l: '< ' + l, a[a1:a2])) result.append('---') result.extend(map(lambda l: '> ' + l, b[b1:b2])) return result
Example #13
Source File: diff.py From android_universal with MIT License | 5 votes |
def main(): parser = argparse.ArgumentParser() parser.add_argument('-c', action='store_true', default=False, help='Produce a context format diff (default)') parser.add_argument('-u', action='store_true', default=False, help='Produce a unified format diff') parser.add_argument('-m', action='store_true', default=False, help='Produce HTML side by side diff ' '(can use -c and -l in conjunction)') parser.add_argument('-n', action='store_true', default=False, help='Produce a ndiff format diff') parser.add_argument('-l', '--lines', type=int, default=3, help='Set number of context lines (default 3)') parser.add_argument('fromfile') parser.add_argument('tofile') options = parser.parse_args() n = options.lines fromfile = options.fromfile tofile = options.tofile fromdate = file_mtime(fromfile) todate = file_mtime(tofile) with open(fromfile) as ff: fromlines = ff.readlines() with open(tofile) as tf: tolines = tf.readlines() if options.u: diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) elif options.n: diff = difflib.ndiff(fromlines, tolines) elif options.m: diff = difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n) else: diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) sys.stdout.writelines(diff)
Example #14
Source File: test_difflib.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_tab_delimiter(self): args = ['one', 'two', 'Original', 'Current', '2005-01-26 23:30:50', '2010-04-02 10:20:52'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], [ "--- Original\t2005-01-26 23:30:50", "+++ Current\t2010-04-02 10:20:52"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], [ "*** Original\t2005-01-26 23:30:50", "--- Current\t2010-04-02 10:20:52"])
Example #15
Source File: test_difflib.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_no_trailing_tab_on_empty_filedate(self): args = ['one', 'two', 'Original', 'Current'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], ["--- Original", "+++ Current"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], ["*** Original", "--- Current"])
Example #16
Source File: test_difflib.py From oss-ftp with MIT License | 5 votes |
def test_tab_delimiter(self): args = ['one', 'two', 'Original', 'Current', '2005-01-26 23:30:50', '2010-04-02 10:20:52'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], [ "--- Original\t2005-01-26 23:30:50", "+++ Current\t2010-04-02 10:20:52"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], [ "*** Original\t2005-01-26 23:30:50", "--- Current\t2010-04-02 10:20:52"])
Example #17
Source File: test_difflib.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_no_trailing_tab_on_empty_filedate(self): args = ['one', 'two', 'Original', 'Current'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], ["--- Original", "+++ Current"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], ["*** Original", "--- Current"])
Example #18
Source File: test_difflib.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_tab_delimiter(self): args = ['one', 'two', 'Original', 'Current', '2005-01-26 23:30:50', '2010-04-02 10:20:52'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], [ "--- Original\t2005-01-26 23:30:50", "+++ Current\t2010-04-02 10:20:52"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], [ "*** Original\t2005-01-26 23:30:50", "--- Current\t2010-04-02 10:20:52"])
Example #19
Source File: test_pfif.py From personfinder with Apache License 2.0 | 5 votes |
def text_diff(expected, actual): """Produces a readable diff between two text strings.""" if isinstance(expected, unicode): expected = expected.encode('ascii', 'ignore') if isinstance(actual, unicode): actual = actual.encode('ascii', 'ignore') return ''.join(difflib.context_diff( expected.splitlines(True), actual.splitlines(True), 'expected', 'actual'))
Example #20
Source File: diff.py From datafari with Apache License 2.0 | 5 votes |
def main(): usage = "usage: %prog [options] fromfile tofile" parser = optparse.OptionParser(usage) parser.add_option("-c", action="store_true", default=False, help='Produce a context format diff (default)') parser.add_option("-u", action="store_true", default=False, help='Produce a unified format diff') parser.add_option("-m", action="store_true", default=False, help='Produce HTML side by side diff (can use -c and -l in conjunction)') parser.add_option("-n", action="store_true", default=False, help='Produce a ndiff format diff') parser.add_option("-l", "--lines", type="int", default=3, help='Set number of context lines (default 3)') (options, args) = parser.parse_args() if len(args) == 0: parser.print_help() sys.exit(1) if len(args) != 2: parser.error("need to specify both a fromfile and tofile") n = options.lines fromfile, tofile = args fromdate = time.ctime(os.stat(fromfile).st_mtime) todate = time.ctime(os.stat(tofile).st_mtime) fromlines = open(fromfile, 'U').readlines() tolines = open(tofile, 'U').readlines() if options.u: diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) elif options.n: diff = difflib.ndiff(fromlines, tolines) elif options.m: diff = difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n) else: diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) sys.stdout.writelines(diff)
Example #21
Source File: diff-db-disk.py From st2 with Apache License 2.0 | 5 votes |
def _content_diff(artifact_type=None, artifact_in_disk=None, artifact_in_db=None, verbose=False): artifact_in_disk_str = json.dumps( artifact_in_disk.__json__(), sort_keys=True, indent=4, separators=(',', ': ') ) artifact_in_db_str = json.dumps( artifact_in_db.__json__(), sort_keys=True, indent=4, separators=(',', ': ') ) diffs = difflib.context_diff(artifact_in_db_str.splitlines(), artifact_in_disk_str.splitlines(), fromfile='DB contents', tofile='Disk contents') printed = False for diff in diffs: if not printed: identifier = getattr(artifact_in_db, 'ref', getattr(artifact_in_db, 'name')) print('%s %s in db differs from what is in disk.' % (artifact_type.upper(), identifier)) printed = True print(diff) if verbose: print('\n\nOriginal contents:') print('===================\n') print('Artifact in db:\n\n%s\n\n' % artifact_in_db_str) print('Artifact in disk:\n\n%s\n\n' % artifact_in_disk_str)
Example #22
Source File: statespace.py From CrossHair with MIT License | 5 votes |
def choose_possible(self, expr: z3.ExprRef, favor_true=False) -> bool: with self.framework(): if time.time() > self.execution_deadline: debug('Path execution timeout after making ', len(self.choices_made), ' choices.') raise PathTimeout notexpr = z3.Not(expr) if self.search_position.is_stem(): self.search_position = self.search_position.grow_into( WorstResultNode(self._random, expr, self.solver)) self.search_position = self.search_position.simplify() node = self.search_position # NOTE: format_stack() is more human readable, but it pulls source file contents, # so it is (1) slow, and (2) unstable when source code changes while we are checking. statedesc = '\n'.join(map(str, traceback.extract_stack())) assert isinstance(node, SearchTreeNode) if node.statehash is None: node.statehash = statedesc else: if node.statehash != statedesc: debug(self.choices_made) debug(' *** Begin Not Deterministic Debug *** ') debug(' First state: ', len(node.statehash)) debug(node.statehash) debug(' Last state: ', len(statedesc)) debug(statedesc) debug(' Stack Diff: ') import difflib debug('\n'.join(difflib.context_diff( node.statehash.split('\n'), statedesc.split('\n')))) debug(' *** End Not Deterministic Debug *** ') raise NotDeterministic() choose_true, stem = node.choose(favor_true=favor_true) assert isinstance(self.search_position, SearchTreeNode) self.choices_made.append(self.search_position) self.search_position = stem expr = expr if choose_true else notexpr #debug('CHOOSE', expr) self.add(expr) return choose_true
Example #23
Source File: test_difflib.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_tab_delimiter(self): args = ['one', 'two', 'Original', 'Current', '2005-01-26 23:30:50', '2010-04-02 10:20:52'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], [ "--- Original\t2005-01-26 23:30:50", "+++ Current\t2010-04-02 10:20:52"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], [ "*** Original\t2005-01-26 23:30:50", "--- Current\t2010-04-02 10:20:52"])
Example #24
Source File: test_difflib.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_no_trailing_tab_on_empty_filedate(self): args = ['one', 'two', 'Original', 'Current'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], ["--- Original", "+++ Current"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], ["*** Original", "--- Current"])
Example #25
Source File: test_difflib.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_byte_content(self): # if we receive byte strings, we return byte strings a = [b'hello', b'andr\xe9'] # iso-8859-1 bytes b = [b'hello', b'andr\xc3\xa9'] # utf-8 bytes unified = difflib.unified_diff context = difflib.context_diff check = self.check check(difflib.diff_bytes(unified, a, a)) check(difflib.diff_bytes(unified, a, b)) # now with filenames (content and filenames are all bytes!) check(difflib.diff_bytes(unified, a, a, b'a', b'a')) check(difflib.diff_bytes(unified, a, b, b'a', b'b')) # and with filenames and dates check(difflib.diff_bytes(unified, a, a, b'a', b'a', b'2005', b'2013')) check(difflib.diff_bytes(unified, a, b, b'a', b'b', b'2005', b'2013')) # same all over again, with context diff check(difflib.diff_bytes(context, a, a)) check(difflib.diff_bytes(context, a, b)) check(difflib.diff_bytes(context, a, a, b'a', b'a')) check(difflib.diff_bytes(context, a, b, b'a', b'b')) check(difflib.diff_bytes(context, a, a, b'a', b'a', b'2005', b'2013')) check(difflib.diff_bytes(context, a, b, b'a', b'b', b'2005', b'2013'))
Example #26
Source File: diff.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def main(): usage = "usage: %prog [options] fromfile tofile" parser = optparse.OptionParser(usage) parser.add_option("-c", action="store_true", default=False, help='Produce a context format diff (default)') parser.add_option("-u", action="store_true", default=False, help='Produce a unified format diff') parser.add_option("-m", action="store_true", default=False, help='Produce HTML side by side diff (can use -c and -l in conjunction)') parser.add_option("-n", action="store_true", default=False, help='Produce a ndiff format diff') parser.add_option("-l", "--lines", type="int", default=3, help='Set number of context lines (default 3)') (options, args) = parser.parse_args() if len(args) == 0: parser.print_help() sys.exit(1) if len(args) != 2: parser.error("need to specify both a fromfile and tofile") n = options.lines fromfile, tofile = args fromdate = time.ctime(os.stat(fromfile).st_mtime) todate = time.ctime(os.stat(tofile).st_mtime) fromlines = open(fromfile, 'U').readlines() tolines = open(tofile, 'U').readlines() if options.u: diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) elif options.n: diff = difflib.ndiff(fromlines, tolines) elif options.m: diff = difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n) else: diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) sys.stdout.writelines(diff)
Example #27
Source File: pypi.py From azure-cli-dev-tools with MIT License | 5 votes |
def _diff_files(filename, dir1, dir2): import difflib file1 = os.path.join(dir1, filename) file2 = os.path.join(dir2, filename) errors = [] with open(file1, 'r') as f1, open(file2, 'r') as f2: errors.append(os.linesep.join(diff for diff in difflib.context_diff(f1.readlines(), f2.readlines()))) return errors
Example #28
Source File: diff.py From odoo13-x64 with GNU General Public License v3.0 | 5 votes |
def main(): parser = argparse.ArgumentParser() parser.add_argument('-c', action='store_true', default=False, help='Produce a context format diff (default)') parser.add_argument('-u', action='store_true', default=False, help='Produce a unified format diff') parser.add_argument('-m', action='store_true', default=False, help='Produce HTML side by side diff ' '(can use -c and -l in conjunction)') parser.add_argument('-n', action='store_true', default=False, help='Produce a ndiff format diff') parser.add_argument('-l', '--lines', type=int, default=3, help='Set number of context lines (default 3)') parser.add_argument('fromfile') parser.add_argument('tofile') options = parser.parse_args() n = options.lines fromfile = options.fromfile tofile = options.tofile fromdate = file_mtime(fromfile) todate = file_mtime(tofile) with open(fromfile) as ff: fromlines = ff.readlines() with open(tofile) as tf: tolines = tf.readlines() if options.u: diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) elif options.n: diff = difflib.ndiff(fromlines, tolines) elif options.m: diff = difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n) else: diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) sys.stdout.writelines(diff)
Example #29
Source File: regression.py From pykicad with ISC License | 5 votes |
def diff_ast(a1, a2): for line in difflib.context_diff(repr(a1), repr(a2)): sys.stdout.write(line)
Example #30
Source File: test_difflib.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_no_trailing_tab_on_empty_filedate(self): args = ['one', 'two', 'Original', 'Current'] ud = difflib.unified_diff(*args, lineterm='') self.assertEqual(list(ud)[0:2], ["--- Original", "+++ Current"]) cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], ["*** Original", "--- Current"])