[Python-checkins] python/dist/src/Tools/unicode comparecodecs.py, NONE, 1.1 listcodecs.py, NONE, 1.1
lemburg@users.sourceforge.net
lemburg at users.sourceforge.net
Fri Oct 21 15:47:06 CEST 2005
- Previous message: [Python-checkins] python/dist/src/Tools/unicode gencodec.py, NONE, 1.1
- Next message: [Python-checkins] python/dist/src/Lib/encodings cp1006.py, 1.4, 1.5 cp1250.py, 1.4, 1.5 cp1251.py, 1.4, 1.5 cp1252.py, 1.4, 1.5 cp1253.py, 1.4, 1.5 cp1254.py, 1.4, 1.5 cp1255.py, 1.4, 1.5 cp1256.py, 1.4, 1.5 cp1257.py, 1.4, 1.5 cp1258.py, 1.4, 1.5 cp424.py, 1.4, 1.5 cp437.py, 1.4, 1.5 cp737.py, 1.4, 1.5 cp775.py, 1.4, 1.5 cp850.py, 1.4, 1.5 cp852.py, 1.4, 1.5 cp855.py, 1.4, 1.5 cp856.py, 1.5, 1.6 cp857.py, 1.4, 1.5 cp860.py, 1.4, 1.5 cp861.py, 1.4, 1.5 cp862.py, 1.4, 1.5 cp863.py, 1.4, 1.5 cp864.py, 1.4, 1.5 cp865.py, 1.4, 1.5 cp866.py, 1.4, 1.5 cp869.py, 1.4, 1.5 cp874.py, 1.4, 1.5 iso8859_1.py, 1.4, 1.5 iso8859_10.py, 1.4, 1.5 iso8859_11.py, 1.2, 1.3 iso8859_13.py, 1.4, 1.5 iso8859_14.py, 1.4, 1.5 iso8859_15.py, 1.4, 1.5 iso8859_16.py, 1.2, 1.3 iso8859_2.py, 1.4, 1.5 iso8859_3.py, 1.4, 1.5 iso8859_4.py, 1.4, 1.5 iso8859_5.py, 1.4, 1.5 iso8859_6.py, 1.4, 1.5 iso8859_7.py, 1.4, 1.5 iso8859_8.py, 1.4, 1.5 iso8859_9.py, 1.4, 1.5 koi8_r.py, 1.4, 1.5 mac_cyrillic.py, 1.4, 1.5 mac_greek.py, 1.4, 1.5 mac_iceland.py, 1.4, 1.5 mac_roman.py, 1.4, 1.5 mac_turkish.py, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/python/python/dist/src/Tools/unicode
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14104
Added Files:
comparecodecs.py listcodecs.py
Log Message:
Add two new tools to compare codecs and show differences and to
list all installed codecs.
--- NEW FILE: comparecodecs.py ---
#!/usr/bin/env python
""" Compare the output of two codecs.
(c) Copyright 2005, Marc-Andre Lemburg (mal at lemburg.com).
Licensed to PSF under a Contributor Agreement.
"""
import sys
def compare_codecs(encoding1, encoding2):
print 'Comparing encoding/decoding of %r and %r' % (encoding1, encoding2)
mismatch = 0
# Check encoding
for i in range(sys.maxunicode):
u = unichr(i)
try:
c1 = u.encode(encoding1)
except UnicodeError, reason:
c1 = '<undefined>'
try:
c2 = u.encode(encoding2)
except UnicodeError, reason:
c2 = '<undefined>'
if c1 != c2:
print ' * encoding mismatch for 0x%04X: %-14r != %r' % \
(i, c1, c2)
mismatch += 1
# Check decoding
for i in range(256):
c = chr(i)
try:
u1 = c.decode(encoding1)
except UnicodeError:
u1 = u'<undefined>'
try:
u2 = c.decode(encoding2)
except UnicodeError:
u2 = u'<undefined>'
if u1 != u2:
print ' * decoding mismatch for 0x%04X: %-14r != %r' % \
(i, u1, u2)
mismatch += 1
if mismatch:
print
print 'Found %i mismatches' % mismatch
else:
print '-> Codecs are identical.'
if __name__ == '__main__':
compare_codecs(sys.argv[1], sys.argv[2])
--- NEW FILE: listcodecs.py ---
""" List all available codec modules.
(c) Copyright 2005, Marc-Andre Lemburg (mal at lemburg.com).
Licensed to PSF under a Contributor Agreement.
"""
import os, codecs, encodings
_debug = 0
def listcodecs(dir):
names = []
for filename in os.listdir(dir):
if filename[-3:] != '.py':
continue
name = filename[:-3]
# Check whether we've found a true codec
try:
codecs.lookup(name)
except LookupError:
# Codec not found
continue
except Exception, reason:
# Probably an error from importing the codec; still it's
# a valid code name
if _debug:
print '* problem importing codec %r: %s' % \
(name, reason)
names.append(name)
return names
if __name__ == '__main__':
names = listcodecs(encodings.__path__[0])
names.sort()
print 'all_codecs = ['
for name in names:
print ' %r,' % name
print ']'
- Previous message: [Python-checkins] python/dist/src/Tools/unicode gencodec.py, NONE, 1.1
- Next message: [Python-checkins] python/dist/src/Lib/encodings cp1006.py, 1.4, 1.5 cp1250.py, 1.4, 1.5 cp1251.py, 1.4, 1.5 cp1252.py, 1.4, 1.5 cp1253.py, 1.4, 1.5 cp1254.py, 1.4, 1.5 cp1255.py, 1.4, 1.5 cp1256.py, 1.4, 1.5 cp1257.py, 1.4, 1.5 cp1258.py, 1.4, 1.5 cp424.py, 1.4, 1.5 cp437.py, 1.4, 1.5 cp737.py, 1.4, 1.5 cp775.py, 1.4, 1.5 cp850.py, 1.4, 1.5 cp852.py, 1.4, 1.5 cp855.py, 1.4, 1.5 cp856.py, 1.5, 1.6 cp857.py, 1.4, 1.5 cp860.py, 1.4, 1.5 cp861.py, 1.4, 1.5 cp862.py, 1.4, 1.5 cp863.py, 1.4, 1.5 cp864.py, 1.4, 1.5 cp865.py, 1.4, 1.5 cp866.py, 1.4, 1.5 cp869.py, 1.4, 1.5 cp874.py, 1.4, 1.5 iso8859_1.py, 1.4, 1.5 iso8859_10.py, 1.4, 1.5 iso8859_11.py, 1.2, 1.3 iso8859_13.py, 1.4, 1.5 iso8859_14.py, 1.4, 1.5 iso8859_15.py, 1.4, 1.5 iso8859_16.py, 1.2, 1.3 iso8859_2.py, 1.4, 1.5 iso8859_3.py, 1.4, 1.5 iso8859_4.py, 1.4, 1.5 iso8859_5.py, 1.4, 1.5 iso8859_6.py, 1.4, 1.5 iso8859_7.py, 1.4, 1.5 iso8859_8.py, 1.4, 1.5 iso8859_9.py, 1.4, 1.5 koi8_r.py, 1.4, 1.5 mac_cyrillic.py, 1.4, 1.5 mac_greek.py, 1.4, 1.5 mac_iceland.py, 1.4, 1.5 mac_roman.py, 1.4, 1.5 mac_turkish.py, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Python-checkins
mailing list