summaryrefslogtreecommitdiff
path: root/tools/dev
diff options
context:
space:
mode:
authormilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2012-06-13 23:27:03 +0000
committermilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2012-06-13 23:27:03 +0000
commit03761495bc2ee062701d4b06ceca38d98a253bba (patch)
treeff1ca8f903adc41872986a08a736f15260f1c221 /tools/dev
parentc5f3093e19314502240c440c076ead8c726a19aa (diff)
downloaddocutils-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-xtools/dev/create_unimap.py39
-rwxr-xr-xtools/dev/profile_docutils.py10
-rwxr-xr-xtools/dev/unicode2rstsubs.py25
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__':