diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2015-07-29 21:03:48 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2015-07-29 21:03:48 (GMT) |
commit | 707deb9df447a635571a85612832c1f9a0d7c801 (patch) | |
tree | 99415232885e0379fe182a128f305c2e830d9eec /Doc | |
parent | 0598da39ec6ac40f9bebfe3495f47a0e350141ec (diff) | |
download | cpython-707deb9df447a635571a85612832c1f9a0d7c801.zip cpython-707deb9df447a635571a85612832c1f9a0d7c801.tar.gz cpython-707deb9df447a635571a85612832c1f9a0d7c801.tar.bz2 |
Issue #24109: Include Tools/scripts/diff.py instead of duplicating it in difflib documentation.
Patch by Keith Gray.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/difflib.rst | 63 |
1 files changed, 1 insertions, 62 deletions
diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst index efaac7a..38245e7 100644 --- a/Doc/library/difflib.rst +++ b/Doc/library/difflib.rst @@ -743,65 +743,4 @@ This example shows how to use difflib to create a ``diff``-like utility. It is also contained in the Python source distribution, as :file:`Tools/scripts/diff.py`. -.. testcode:: - - """ Command line interface to difflib.py providing diffs in four formats: - - * ndiff: lists every line and highlights interline changes. - * context: highlights clusters of changes in a before/after format. - * unified: highlights clusters of changes in an inline format. - * html: generates side by side comparison with change highlights. - - """ - - import sys, os, time, difflib, optparse - - def main(): - # Configure the option parser - 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') - hlp = 'Produce HTML side by side diff (can use -c and -l in conjunction)' - parser.add_option("-m", action="store_true", default=False, help=hlp) - 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 # as specified in the usage string - - # we're passing these as arguments to the diff function - fromdate = time.ctime(os.stat(fromfile).st_mtime) - todate = time.ctime(os.stat(tofile).st_mtime) - with open(fromfile) as fromf, open(tofile) as tof: - fromlines, tolines = list(fromf), list(tof) - - 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) - - # we're using writelines because diff is a generator - sys.stdout.writelines(diff) - - if __name__ == '__main__': - main() +.. literalinclude:: ../../Tools/scripts/diff.py |