[PATCH 09 of 10 V3 py3 support] setup: handle more invalid python3 syntax
Augie Fackler
raf at durin42.com
Fri Sep 20 12:19:40 CDT 2013
# HG changeset patch
# User Augie Fackler <raf at durin42.com>
# Date 1379619522 14400
# Thu Sep 19 15:38:42 2013 -0400
# Node ID f56a1666fb72e636d1f67fcff48d45abad8b176b
# Parent 08a37126954a5b653c1dee4820f9065d3723179b
setup: handle more invalid python3 syntax
This should keep the file portable to both python2 and python3.
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -13,11 +13,18 @@
'''A helper function to emulate 2.6+ bytes literals using string
literals.'''
return s.encode('latin1')
+ printf = eval('print')
+ libdir_escape = 'unicode_escape'
else:
+ libdir_escape = 'string_escape'
def b(s):
'''A helper function to emulate 2.6+ bytes literals using string
literals.'''
return s
+ def printf(*args, **kwargs):
+ f = kwargs.get('file', sys.stdout)
+ end = kwargs.get('end', '\n')
+ f.write(b' '.join(args) + end)
# Solaris Python packaging brain damage
try:
@@ -152,8 +159,8 @@
and not e.startswith(b('warning: Not importing')) \
and not e.startswith(b('obsolete feature not enabled'))]
if err:
- print >> sys.stderr, "stderr from '%s':" % (' '.join(cmd))
- print >> sys.stderr, '\n'.join([' ' + e for e in err])
+ printf("stderr from '%s':" % (' '.join(cmd)), file=sys.stderr)
+ printf(b('\n').join([b(' ') + e for e in err]), file=sys.stderr)
return ''
return out
@@ -403,7 +410,7 @@
if b('\0') in data:
continue
- data = data.replace('@LIBDIR@', libdir.encode('string_escape'))
+ data = data.replace(b('@LIBDIR@'), libdir.encode(libdir_escape))
fp = open(outfile, 'wb')
fp.write(data)
fp.close()
More information about the Mercurial-devel
mailing list