Mercurial > cpython-lru_cache-weakref
annotate Tools/unicode/comparecodecs.py @ 58689:514b56efd89a 3.1
Merged revisions 77962 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r77962 | r.david.murray | 2010-02-04 11:41:57 -0500 (Thu, 04 Feb 2010) | 17 lines
Merged revisions 77943,77959-77960 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77943 | r.david.murray | 2010-02-03 08:36:23 -0500 (Wed, 03 Feb 2010) | 2 lines
Explicitly mention the default value for formatdate's usegmt parameter.
........
r77959 | nick.coghlan | 2010-02-04 07:43:58 -0500 (Thu, 04 Feb 2010) | 1 line
Issue 6760: Clarify args handling for subprocess.Popen. Patch by Chris Rebert
........
r77960 | r.david.murray | 2010-02-04 11:33:31 -0500 (Thu, 04 Feb 2010) | 2 lines
Add Chris Rebert to ACKS for issue 6760 Popen doc improvements.
........
................
| author | R. David Murray <rdmurray@bitdance.com> |
|---|---|
| date | Thu, 04 Feb 2010 16:44:31 +0000 |
| parents | 63741c7521aa |
| children | fcfe324663a6 |
| rev | line source |
|---|---|
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
2 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
3 """ Compare the output of two codecs. |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
4 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
5 (c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com). |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
6 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
7 Licensed to PSF under a Contributor Agreement. |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
8 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
9 """ |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
10 import sys |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
11 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
12 def compare_codecs(encoding1, encoding2): |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
13 |
|
42427
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
14 print('Comparing encoding/decoding of %r and %r' % (encoding1, encoding2)) |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
15 mismatch = 0 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
16 # Check encoding |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
17 for i in range(sys.maxunicode): |
|
47103
63741c7521aa
More 2to3 fixes in the Tools directory. Fixes #2893.
Georg Brandl <georg@python.org>
parents:
42427
diff
changeset
|
18 u = chr(i) |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
19 try: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
20 c1 = u.encode(encoding1) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
35761
diff
changeset
|
21 except UnicodeError as reason: |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
22 c1 = '<undefined>' |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
23 try: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
24 c2 = u.encode(encoding2) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
35761
diff
changeset
|
25 except UnicodeError as reason: |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
26 c2 = '<undefined>' |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
27 if c1 != c2: |
|
42427
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
28 print(' * encoding mismatch for 0x%04X: %-14r != %r' % \ |
|
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
29 (i, c1, c2)) |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
30 mismatch += 1 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
31 # Check decoding |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
32 for i in range(256): |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
33 c = chr(i) |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
34 try: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
35 u1 = c.decode(encoding1) |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
36 except UnicodeError: |
|
47103
63741c7521aa
More 2to3 fixes in the Tools directory. Fixes #2893.
Georg Brandl <georg@python.org>
parents:
42427
diff
changeset
|
37 u1 = '<undefined>' |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
38 try: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
39 u2 = c.decode(encoding2) |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
40 except UnicodeError: |
|
47103
63741c7521aa
More 2to3 fixes in the Tools directory. Fixes #2893.
Georg Brandl <georg@python.org>
parents:
42427
diff
changeset
|
41 u2 = '<undefined>' |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
42 if u1 != u2: |
|
42427
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
43 print(' * decoding mismatch for 0x%04X: %-14r != %r' % \ |
|
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
44 (i, u1, u2)) |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
45 mismatch += 1 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
46 if mismatch: |
|
42427
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
47 print() |
|
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
48 print('Found %i mismatches' % mismatch) |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
49 else: |
|
42427
46625e6122e9
Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents:
40587
diff
changeset
|
50 print('-> Codecs are identical.') |
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
51 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
52 if __name__ == '__main__': |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
53 compare_codecs(sys.argv[1], sys.argv[2]) |
