summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2015-07-29 21:03:48 (GMT)
committerBerker Peksag <berker.peksag@gmail.com>2015-07-29 21:03:48 (GMT)
commit707deb9df447a635571a85612832c1f9a0d7c801 (patch)
tree99415232885e0379fe182a128f305c2e830d9eec /Doc
parent0598da39ec6ac40f9bebfe3495f47a0e350141ec (diff)
downloadcpython-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.rst63
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