[pypy-svn] r77421 - in pypy/branch/fast-forward/pypy/module/_codecs: . test
afa at codespeak.net
afa at codespeak.net
Tue Sep 28 00:18:07 CEST 2010
Author: afa
Date: Tue Sep 28 00:18:06 2010
New Revision: 77421
Modified:
pypy/branch/fast-forward/pypy/module/_codecs/__init__.py
pypy/branch/fast-forward/pypy/module/_codecs/interp_codecs.py
pypy/branch/fast-forward/pypy/module/_codecs/test/test_codecs.py
Log:
Export utf_32 functions in the _codecs module
Modified: pypy/branch/fast-forward/pypy/module/_codecs/__init__.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_codecs/__init__.py (original)
+++ pypy/branch/fast-forward/pypy/module/_codecs/__init__.py Tue Sep 28 00:18:06 2010
@@ -65,6 +65,13 @@
'utf_16_le_decode' : 'interp_codecs.utf_16_le_decode',
'utf_16_le_encode' : 'interp_codecs.utf_16_le_encode',
'utf_16_ex_decode' : 'interp_codecs.utf_16_ex_decode',
+ 'utf_32_decode' : 'interp_codecs.utf_32_decode',
+ 'utf_32_encode' : 'interp_codecs.utf_32_encode',
+ 'utf_32_be_decode' : 'interp_codecs.utf_32_be_decode',
+ 'utf_32_be_encode' : 'interp_codecs.utf_32_be_encode',
+ 'utf_32_le_decode' : 'interp_codecs.utf_32_le_decode',
+ 'utf_32_le_encode' : 'interp_codecs.utf_32_le_encode',
+ 'utf_32_ex_decode' : 'interp_codecs.utf_32_ex_decode',
'charbuffer_encode': 'interp_codecs.buffer_encode',
'readbuffer_encode': 'interp_codecs.buffer_encode',
'charmap_decode' : 'interp_codecs.charmap_decode',
Modified: pypy/branch/fast-forward/pypy/module/_codecs/interp_codecs.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_codecs/interp_codecs.py (original)
+++ pypy/branch/fast-forward/pypy/module/_codecs/interp_codecs.py Tue Sep 28 00:18:06 2010
@@ -410,6 +410,9 @@
"utf_16_encode",
"utf_16_be_encode",
"utf_16_le_encode",
+ "utf_32_encode",
+ "utf_32_be_encode",
+ "utf_32_le_encode",
"unicode_escape_encode",
"raw_unicode_escape_encode",
"unicode_internal_encode",
@@ -424,6 +427,9 @@
"utf_16_decode",
"utf_16_be_decode",
"utf_16_le_decode",
+ "utf_32_decode",
+ "utf_32_be_decode",
+ "utf_32_le_decode",
"raw_unicode_escape_decode",
]:
make_decoder_wrapper(decoders)
@@ -450,6 +456,24 @@
space.wrap(byteorder)])
utf_16_ex_decode.unwrap_spec = [ObjSpace, str, str, int, W_Root]
+def utf_32_ex_decode(space, data, errors='strict', byteorder=0, w_final=False):
+ final = space.is_true(w_final)
+ state = space.fromcache(CodecState)
+ if byteorder == 0:
+ byteorder = 'native'
+ elif byteorder == -1:
+ byteorder = 'little'
+ else:
+ byteorder = 'big'
+ consumed = len(data)
+ if final:
+ consumed = 0
+ res, consumed, byteorder = runicode.str_decode_utf_32_helper(
+ data, len(data), errors, final, state.decode_error_handler, byteorder)
+ return space.newtuple([space.wrap(res), space.wrap(consumed),
+ space.wrap(byteorder)])
+utf_32_ex_decode.unwrap_spec = [ObjSpace, str, str, int, W_Root]
+
# ____________________________________________________________
# Charmap
Modified: pypy/branch/fast-forward/pypy/module/_codecs/test/test_codecs.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_codecs/test/test_codecs.py (original)
+++ pypy/branch/fast-forward/pypy/module/_codecs/test/test_codecs.py Tue Sep 28 00:18:06 2010
@@ -14,6 +14,7 @@
def test_bigU_codecs(self):
u = u'\U00010001\U00020002\U00030003\U00040004\U00050005'
for encoding in ('utf-8', 'utf-16', 'utf-16-le', 'utf-16-be',
+ 'utf-32', 'utf-32-le', 'utf-32-be',
'raw_unicode_escape',
'unicode_escape', 'unicode_internal'):
assert unicode(u.encode(encoding),encoding) == u
More information about the Pypy-commit
mailing list