diff options
author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2012-06-13 23:27:03 +0000 |
---|---|---|
committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2012-06-13 23:27:03 +0000 |
commit | 03761495bc2ee062701d4b06ceca38d98a253bba (patch) | |
tree | ff1ca8f903adc41872986a08a736f15260f1c221 /tools/dev | |
parent | c5f3093e19314502240c440c076ead8c726a19aa (diff) | |
download | docutils-03761495bc2ee062701d4b06ceca38d98a253bba.tar.gz |
Make tools/ compatible with both, Python 2 and 3 without 2to3-conversion.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@7442 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'tools/dev')
-rwxr-xr-x | tools/dev/create_unimap.py | 39 | ||||
-rwxr-xr-x | tools/dev/profile_docutils.py | 10 | ||||
-rwxr-xr-x | tools/dev/unicode2rstsubs.py | 25 |
3 files changed, 42 insertions, 32 deletions
diff --git a/tools/dev/create_unimap.py b/tools/dev/create_unimap.py index 0f733c69f..9fb75bcc7 100755 --- a/tools/dev/create_unimap.py +++ b/tools/dev/create_unimap.py @@ -13,8 +13,15 @@ from xml.dom import minidom import sys import pprint +if sys.version_info >= (3,0): + unicode = str +else: + bytes = str + chr = unichr + + def w(s): - if isinstance(s, unicode): + if sys.version_info >= (3,0) and isinstance(s, unicode): s = s.encode('utf8') sys.stdout.write(s) @@ -39,9 +46,9 @@ class Visitor: continue latex_code = n.childNodes[0].nodeValue.encode('ascii').strip() if node.attributes['mode'].value == 'math': - math_map[unichr(int(code))] = '$%s$' % latex_code + math_map[chr(int(code))] = '$%s$' % latex_code else: - text_map[unichr(int(code))] = '{%s}' % latex_code + text_map[chr(int(code))] = '{%s}' % latex_code def call_visitor(node, visitor=Visitor()): if isinstance(node, minidom.Text): @@ -63,16 +70,16 @@ unicode_map.update(text_map) # Now unicode_map contains the text entries plus dollar-enclosed math # entries for those chars for which no text entry exists. -print '# $%s$' % 'Id' -print '# Author: Lea Wiemann <LeWiemann@gmail.com>' -print '# Copyright: This file has been placed in the public domain.' -print -print '# This is a mapping of Unicode characters to LaTeX equivalents.' -print '# The information has been extracted from' -print '# <http://www.w3.org/2003/entities/xml/unicode.xml>, written by' -print '# David Carlisle and Sebastian Rahtz.' -print '#' -print '# The extraction has been done by the "create_unimap.py" script' -print '# located at <http://docutils.sf.net/tools/dev/create_unimap.py>.' -print -print 'unicode_map = %s' % pprint.pformat(unicode_map, indent=0) +print('# $%s$' % 'Id') +print('# Author: Lea Wiemann <LeWiemann@gmail.com>') +print('# Copyright: This file has been placed in the public domain.') +print('') +print('# This is a mapping of Unicode characters to LaTeX equivalents.') +print('# The information has been extracted from') +print('# <http://www.w3.org/2003/entities/xml/unicode.xml>, written by') +print('# David Carlisle and Sebastian Rahtz.') +print('#') +print('# The extraction has been done by the "create_unimap.py" script') +print('# located at <http://docutils.sf.net/tools/dev/create_unimap.py>.') +print('') +print('unicode_map = %s' % pprint.pformat(unicode_map, indent=0)) diff --git a/tools/dev/profile_docutils.py b/tools/dev/profile_docutils.py index 90b083787..d31ba6fd0 100755 --- a/tools/dev/profile_docutils.py +++ b/tools/dev/profile_docutils.py @@ -8,25 +8,25 @@ import os.path import docutils.core import hotshot.stats -print 'Profiler started.' +print('Profiler started.') os.chdir(os.path.join(os.path.dirname(docutils.__file__), '..')) -print 'Profiling...' +print('Profiling...') prof = hotshot.Profile('docutils.prof') prof.runcall(docutils.core.publish_file, source_path='HISTORY.txt', destination_path='prof.HISTORY.html', writer_name='html') prof.close() -print 'Loading statistics...' +print('Loading statistics...') -print """ +print(""" stats = hotshot.stats.load('docutils.prof') stats.strip_dirs() stats.sort_stats('time') # 'cumulative'; 'calls' stats.print_stats(40) -""" +""") stats = hotshot.stats.load('docutils.prof') stats.strip_dirs() diff --git a/tools/dev/unicode2rstsubs.py b/tools/dev/unicode2rstsubs.py index 22ac07ecc..b4e65e109 100755 --- a/tools/dev/unicode2rstsubs.py +++ b/tools/dev/unicode2rstsubs.py @@ -27,12 +27,12 @@ import re from xml.parsers.expat import ParserCreate -usage_msg = """Usage: %s [unicode.xml]""" +usage_msg = """Usage: %s [unicode.xml]\n""" def usage(prog, status=0, msg=None): - print >>sys.stderr, usage_msg % prog + sys.stderr.write(usage_msg % prog) if msg: - print >>sys.stderr, msg + sys.stderr.write(msg + '\n') sys.exit(status) def main(argv=None): @@ -47,7 +47,10 @@ def main(argv=None): inpath = 'unicode.xml' if not os.path.isfile(inpath): usage(argv[0], 1, 'No such file: "%s".' % inpath) - infile = open(inpath) + if sys.version_info >= (3,0): + infile = open(inpath, mode='rb') + else: + infile = open(inpath) process(infile) def process(infile): @@ -130,7 +133,7 @@ class CharacterEntitySetExtractor: if not set: return if set not in self.sets: - print 'bad set: %r' % set + print('bad set: %r' % set) return entity = attributes['id'] assert (entity not in self.sets[set] @@ -159,7 +162,7 @@ class CharacterEntitySetExtractor: return name def write_sets(self): - sets = self.sets.keys() + sets = list(self.sets.keys()) sets.sort() for set_name in sets: self.write_set(set_name) @@ -170,8 +173,8 @@ class CharacterEntitySetExtractor: else: outname = set_name + '.txt' outfile = open(outname, 'w') - print 'writing file "%s"' % outname - print >>outfile, self.header + print('writing file "%s"' % outname) + outfile.write(self.header + '\n') set = self.sets[set_name] entities = [(e.lower(), e) for e in set.keys()] entities.sort() @@ -193,9 +196,9 @@ class CharacterEntitySetExtractor: if int(code, 16) > 0xFFFF: return 1 # wide-Unicode character codes = ' '.join(['U+%s' % code for code in charid[1:].split('-')]) - print >>outfile, ('.. %-*s unicode:: %s .. %s' - % (longest + 2, '|' + entity_name + '|', - codes, self.descriptions[charid])) + outfile.write('.. %-*s unicode:: %s .. %s\n' + % (longest + 2, '|' + entity_name + '|', + codes, self.descriptions[charid])) if __name__ == '__main__': |