Mercurial > hg
view hg @ 11878:8bb1481cf08f
py3kcompat: added fake ord implementation for py3k
In py3k, a bytes object __getitem__ will return an int instead of a
one-character bytes object. This has negative consequences when we want to
ord(), like in the following example:
>>> b'foo'[0]
102
>>> ord(b'foo'[0])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ord() expected string of length 1, but int found
This patch overrides the default ord() implementation to just return an int
that's what is passed as an argument for ord(). Making the above call succeed:
>>> ord(b'foo'[0])
102
author | Renato Cunha <renatoc@gmail.com> |
---|---|
date | Sat, 07 Aug 2010 16:38:38 -0300 |
parents | 25e572394f5c |
children | 10da5a1f25dd |
line wrap: on
line source
#!/usr/bin/env python # # mercurial - scalable distributed SCM # # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. # enable importing on demand to reduce startup time try: from mercurial import demandimport; demandimport.enable() except ImportError: import sys sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" % ' '.join(sys.path)) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) import sys import mercurial.util import mercurial.dispatch for fp in (sys.stdin, sys.stdout, sys.stderr): mercurial.util.set_binary(fp) mercurial.dispatch.run()