##// END OF EJS Templates
util: wrap s.decode('string_escape') calls for future py3 compatibility
Yuya Nishihara -
r31484:afb33535 default
parent child Browse files
Show More
@@ -32,7 +32,7 b' def _string_escape(text):'
32 >>> s
32 >>> s
33 'ab\\ncd\\\\\\\\n\\x00ab\\rcd\\\\\\n'
33 'ab\\ncd\\\\\\\\n\\x00ab\\rcd\\\\\\n'
34 >>> res = _string_escape(s)
34 >>> res = _string_escape(s)
35 >>> s == res.decode('string_escape')
35 >>> s == util.unescapestr(res)
36 True
36 True
37 """
37 """
38 # subset of the string_escape codec
38 # subset of the string_escape codec
@@ -57,7 +57,7 b' def decodeextra(text):'
57 l = l.replace('\\\\', '\\\\\n')
57 l = l.replace('\\\\', '\\\\\n')
58 l = l.replace('\\0', '\0')
58 l = l.replace('\\0', '\0')
59 l = l.replace('\n', '')
59 l = l.replace('\n', '')
60 k, v = l.decode('string_escape').split(':', 1)
60 k, v = util.unescapestr(l).split(':', 1)
61 extra[k] = v
61 extra[k] = v
62 return extra
62 return extra
63
63
@@ -19,7 +19,10 b''
19 from __future__ import absolute_import
19 from __future__ import absolute_import
20
20
21 from .i18n import _
21 from .i18n import _
22 from . import error
22 from . import (
23 error,
24 util,
25 )
23
26
24 class parser(object):
27 class parser(object):
25 def __init__(self, elements, methods=None):
28 def __init__(self, elements, methods=None):
@@ -164,7 +167,7 b' def buildargsdict(trees, funcname, argsp'
164
167
165 def unescapestr(s):
168 def unescapestr(s):
166 try:
169 try:
167 return s.decode("string_escape")
170 return util.unescapestr(s)
168 except ValueError as e:
171 except ValueError as e:
169 # mangle Python's exception into our format
172 # mangle Python's exception into our format
170 raise error.ParseError(str(e).lower())
173 raise error.ParseError(str(e).lower())
@@ -2137,6 +2137,9 b' def escapestr(s):'
2137 # Python 3 compatibility
2137 # Python 3 compatibility
2138 return codecs.escape_encode(s)[0]
2138 return codecs.escape_encode(s)[0]
2139
2139
2140 def unescapestr(s):
2141 return s.decode('string_escape')
2142
2140 def uirepr(s):
2143 def uirepr(s):
2141 # Avoid double backslash in Windows path repr()
2144 # Avoid double backslash in Windows path repr()
2142 return repr(s).replace('\\\\', '\\')
2145 return repr(s).replace('\\\\', '\\')
General Comments 0
You need to be logged in to leave comments. Login now