# HG changeset patch # User Augie Fackler # Date 1523684084 14400 # Node ID 3942bd8db8b2a878ed39966cbff0a001c295d892 # Parent e743b8524d608684b5a947337c37b686cfc0ae5b stringutil: ast.literal_eval needs a unicode on py3 Fortunately for us, this is really only used internally, so we can be lazy about the encoding here. test-wireproto-framing.py now passes on Python 3. Differential Revision: https://phab.mercurial-scm.org/D3368 diff -r e743b8524d60 -r 3942bd8db8b2 contrib/python3-whitelist --- a/contrib/python3-whitelist Fri Apr 13 22:55:01 2018 -0700 +++ b/contrib/python3-whitelist Sat Apr 14 01:34:44 2018 -0400 @@ -437,4 +437,5 @@ test-verify.t test-websub.t test-win32text.t +test-wireproto-framing.py test-xdg.t diff -r e743b8524d60 -r 3942bd8db8b2 mercurial/utils/stringutil.py --- a/mercurial/utils/stringutil.py Fri Apr 13 22:55:01 2018 -0700 +++ b/mercurial/utils/stringutil.py Sat Apr 14 01:34:44 2018 -0400 @@ -510,4 +510,6 @@ def evalpythonliteral(s): """Evaluate a string containing a Python literal expression""" # We could backport our tokenizer hack to rewrite '' to u'' if we want + if pycompat.ispy3: + return ast.literal_eval(s.decode('latin1')) return ast.literal_eval(s)