[pypy-commit] pypy py3k: raw_unicode_escape_decode accepts unicode
pjenvey
noreply at buildbot.pypy.org
Fri Jan 18 22:32:14 CET 2013
Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r60186:4739822aa049
Date: 2013-01-18 13:29 -0800
http://bitbucket.org/pypy/pypy/changeset/4739822aa049/
Log: raw_unicode_escape_decode accepts unicode
diff --git a/pypy/module/_codecs/interp_codecs.py b/pypy/module/_codecs/interp_codecs.py
--- a/pypy/module/_codecs/interp_codecs.py
+++ b/pypy/module/_codecs/interp_codecs.py
@@ -513,7 +513,6 @@
"utf_32_decode",
"utf_32_be_decode",
"utf_32_le_decode",
- "raw_unicode_escape_decode",
]:
make_decoder_wrapper(decoders)
@@ -767,6 +766,21 @@
return space.newtuple([space.wrap(result), space.wrap(consumed)])
# ____________________________________________________________
+# Raw Unicode escape (accepts bytes or str)
+
+ at unwrap_spec(string='bufferstr_or_u', errors='str_or_None',
+ w_final=WrappedDefault(False))
+def raw_unicode_escape_decode(space, string, errors="strict", w_final=None):
+ if errors is None:
+ errors = 'strict'
+ final = space.is_true(w_final)
+ state = space.fromcache(CodecState)
+ result, consumed = runicode.str_decode_raw_unicode_escape(
+ string, len(string), errors,
+ final, state.decode_error_handler)
+ return space.newtuple([space.wrap(result), space.wrap(consumed)])
+
+# ____________________________________________________________
# Unicode-internal
@unwrap_spec(errors='str_or_None')
diff --git a/pypy/module/_codecs/test/test_codecs.py b/pypy/module/_codecs/test/test_codecs.py
--- a/pypy/module/_codecs/test/test_codecs.py
+++ b/pypy/module/_codecs/test/test_codecs.py
@@ -268,8 +268,10 @@
assert bytes.decode("unicode_internal") == "a"
def test_raw_unicode_escape(self):
+ import _codecs
assert str(b"\u0663", "raw-unicode-escape") == "\u0663"
assert "\u0663".encode("raw-unicode-escape") == b"\u0663"
+ assert _codecs.raw_unicode_escape_decode(r"\u1234") == ("\u1234", 6)
def test_escape_decode(self):
import _codecs
More information about the pypy-commit
mailing list