Mercurial > cpython-lru_cache-weakref
annotate Tools/scripts/diff.py @ 56121:ea697cde6882 3.1
Merged revisions 74881-74885,74888,74891-74895,74900,74905-74906,74931-74932,74934,74941-74942,74944,74956 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r74881 | r.david.murray | 2009-09-17 15:12:49 -0400 (Thu, 17 Sep 2009) | 2 lines
Check in first draft of maintainers.rst.
........
r74882 | eric.smith | 2009-09-17 15:22:30 -0400 (Thu, 17 Sep 2009) | 1 line
Typo.
........
r74883 | mark.dickinson | 2009-09-17 15:37:28 -0400 (Thu, 17 Sep 2009) | 1 line
Add some more module maintainers.
........
r74884 | mark.dickinson | 2009-09-17 15:39:12 -0400 (Thu, 17 Sep 2009) | 1 line
Revert accidental changes to Objects/longobject.c
........
r74885 | mark.dickinson | 2009-09-17 16:20:01 -0400 (Thu, 17 Sep 2009) | 1 line
Add decimal maintainers
........
r74888 | r.david.murray | 2009-09-17 18:10:48 -0400 (Thu, 17 Sep 2009) | 2 lines
Maintainer additions from MAL.
........
r74891 | georg.brandl | 2009-09-17 18:18:01 -0400 (Thu, 17 Sep 2009) | 1 line
Some more maintainers.
........
r74892 | r.david.murray | 2009-09-17 19:23:56 -0400 (Thu, 17 Sep 2009) | 2 lines
Add a couple interest areas for Nick per his request.
........
r74893 | r.david.murray | 2009-09-17 19:43:20 -0400 (Thu, 17 Sep 2009) | 2 lines
Benajmin is also compiler-knowledgeable.
........
r74894 | alexandre.vassalotti | 2009-09-17 20:59:05 -0400 (Thu, 17 Sep 2009) | 2 lines
Added myself to my areas of interest.
........
r74895 | brett.cannon | 2009-09-17 21:03:35 -0400 (Thu, 17 Sep 2009) | 1 line
Add myself to a couple places as maintainer.
........
r74900 | georg.brandl | 2009-09-18 05:06:37 -0400 (Fri, 18 Sep 2009) | 1 line
Add myself in interest areas.
........
r74905 | ezio.melotti | 2009-09-18 05:58:43 -0400 (Fri, 18 Sep 2009) | 1 line
Add myself in interest areas and mark effbot as inactive in winsound
........
r74906 | antoine.pitrou | 2009-09-18 09:15:23 -0400 (Fri, 18 Sep 2009) | 3 lines
Add myself in a couple of places
........
r74931 | r.david.murray | 2009-09-18 17:25:36 -0400 (Fri, 18 Sep 2009) | 5 lines
Add some names gleaned from the "Tracker Archeology" thread
on python-dev from back in February. Also consolidate
the autoconf and makefiles topics into one, and add tracker
and svn/hg topics.
........
r74932 | r.david.murray | 2009-09-18 17:32:16 -0400 (Fri, 18 Sep 2009) | 2 lines
Remove non-committer mistakenly added.
........
r74934 | r.david.murray | 2009-09-18 17:40:30 -0400 (Fri, 18 Sep 2009) | 2 lines
More descriptive/generic name for the svn/hg entry (version control)
........
r74941 | benjamin.peterson | 2009-09-18 18:45:59 -0400 (Fri, 18 Sep 2009) | 1 line
add a new category for myself
........
r74942 | benjamin.peterson | 2009-09-18 18:50:55 -0400 (Fri, 18 Sep 2009) | 1 line
add myself for symtable
........
r74944 | georg.brandl | 2009-09-19 03:39:05 -0400 (Sat, 19 Sep 2009) | 1 line
I would like to maintain the token module!
........
r74956 | r.david.murray | 2009-09-19 14:40:08 -0400 (Sat, 19 Sep 2009) | 3 lines
Add everyone who we know has been a release manager
as a resource for the 'release management' topic.
........
| author | R. David Murray <rdmurray@bitdance.com> |
|---|---|
| date | Sat, 19 Sep 2009 19:04:37 +0000 |
| parents | ab588ce9e71f |
| children | 7fb0abf928e0 65d5ecefd50d |
| rev | line source |
|---|---|
|
33319
6d3bdd19beeb
Patch #914575: difflib side by side diff support, diff.py s/b/s HTML option.
Martin v. Löwis <martin@v.loewis.de>
parents:
33074
diff
changeset
|
1 """ Command line interface to difflib.py providing diffs in four formats: |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
2 |
|
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
3 * ndiff: lists every line and highlights interline changes. |
|
33319
6d3bdd19beeb
Patch #914575: difflib side by side diff support, diff.py s/b/s HTML option.
Martin v. Löwis <martin@v.loewis.de>
parents:
33074
diff
changeset
|
4 * context: highlights clusters of changes in a before/after format. |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
5 * unified: highlights clusters of changes in an inline format. |
|
33319
6d3bdd19beeb
Patch #914575: difflib side by side diff support, diff.py s/b/s HTML option.
Martin v. Löwis <martin@v.loewis.de>
parents:
33074
diff
changeset
|
6 * html: generates side by side comparison with change highlights. |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
7 |
|
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
8 """ |
|
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
9 |
|
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
10 import sys, os, time, difflib, optparse |
|
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
11 |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
12 def main(): |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
13 |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
14 usage = "usage: %prog [options] fromfile tofile" |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
15 parser = optparse.OptionParser(usage) |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
16 parser.add_option("-c", action="store_true", default=False, help='Produce a context format diff (default)') |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
17 parser.add_option("-u", action="store_true", default=False, help='Produce a unified format diff') |
|
33319
6d3bdd19beeb
Patch #914575: difflib side by side diff support, diff.py s/b/s HTML option.
Martin v. Löwis <martin@v.loewis.de>
parents:
33074
diff
changeset
|
18 parser.add_option("-m", action="store_true", default=False, help='Produce HTML side by side diff (can use -c and -l in conjunction)') |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
19 parser.add_option("-n", action="store_true", default=False, help='Produce a ndiff format diff') |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
20 parser.add_option("-l", "--lines", type="int", default=3, help='Set number of context lines (default 3)') |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
21 (options, args) = parser.parse_args() |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
22 |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
23 if len(args) == 0: |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
24 parser.print_help() |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
25 sys.exit(1) |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
26 if len(args) != 2: |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
27 parser.error("need to specify both a fromfile and tofile") |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
28 |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
29 n = options.lines |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
30 fromfile, tofile = args |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
31 |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
32 fromdate = time.ctime(os.stat(fromfile).st_mtime) |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
33 todate = time.ctime(os.stat(tofile).st_mtime) |
|
33666
ab588ce9e71f
Read the text files to be compared in universal-newline mode.
Tim Peters <tim.peters@gmail.com>
parents:
33319
diff
changeset
|
34 fromlines = open(fromfile, 'U').readlines() |
|
ab588ce9e71f
Read the text files to be compared in universal-newline mode.
Tim Peters <tim.peters@gmail.com>
parents:
33319
diff
changeset
|
35 tolines = open(tofile, 'U').readlines() |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
36 |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
37 if options.u: |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
38 diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
39 elif options.n: |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
40 diff = difflib.ndiff(fromlines, tolines) |
|
33319
6d3bdd19beeb
Patch #914575: difflib side by side diff support, diff.py s/b/s HTML option.
Martin v. Löwis <martin@v.loewis.de>
parents:
33074
diff
changeset
|
41 elif options.m: |
|
6d3bdd19beeb
Patch #914575: difflib side by side diff support, diff.py s/b/s HTML option.
Martin v. Löwis <martin@v.loewis.de>
parents:
33074
diff
changeset
|
42 diff = difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n) |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
43 else: |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
44 diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) |
|
29386
cd5ecc5b38eb
Added a command line interface for difflib.py
Raymond Hettinger <python@rcn.com>
parents:
diff
changeset
|
45 |
|
33074
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
46 sys.stdout.writelines(diff) |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
47 |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
48 if __name__ == '__main__': |
|
981fff7363b9
[Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents:
32538
diff
changeset
|
49 main() |
