[PATCH V2] py3: a second argument to open can't be bytes
Augie Fackler
raf at durin42.com
Sun Oct 9 16:14:15 UTC 2016
On Sun, Oct 09, 2016 at 02:10:40PM +0200, Martijn Pieters wrote:
> # HG changeset patch
> # User Martijn Pieters <mjpieters at fb.com>
> # Date 1476015001 -7200
> # Sun Oct 09 14:10:01 2016 +0200
> # Node ID 82489cd912f332be976cf432673ad47af0d04cd7
> # Parent a56076f85aa6aa728457ecc571ff58514bc59896
> py3: a second argument to open can't be bytes
Queued, thanks!
>
> diff --git a/mercurial/__init__.py b/mercurial/__init__.py
> --- a/mercurial/__init__.py
> +++ b/mercurial/__init__.py
> @@ -305,6 +305,24 @@
> except IndexError:
> pass
>
> + # Bare open call (not an attribute on something else)
> + if (fn == 'open' and not (prevtoken.type == token.OP and
> + prevtoken.string == '.')):
> + try:
> + # (NAME, 'open')
> + # (OP, '(')
> + # (NAME|STRING, 'filename')
> + # (OP, ',')
> + # (NAME|STRING, mode)
> + st = tokens[i + 4]
> + if (st.type == token.STRING and
> + st.string[0] in ("'", '"')):
> + rt = tokenize.TokenInfo(st.type, 'u%s' % st.string,
> + st.start, st.end, st.line)
> + tokens[i + 4] = rt
> + except IndexError:
> + pass
> +
> # It changes iteritems to items as iteritems is not
> # present in Python 3 world.
> if fn == 'iteritems':
> @@ -319,7 +337,7 @@
> # ``replacetoken`` or any mechanism that changes semantics of module
> # loading is changed. Otherwise cached bytecode may get loaded without
> # the new transformation mechanisms applied.
> - BYTECODEHEADER = b'HG\x00\x04'
> + BYTECODEHEADER = b'HG\x00\x05'
>
> class hgloader(importlib.machinery.SourceFileLoader):
> """Custom module loader that transforms source code.
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list