Author: Carl Friedrich Bolz <[email protected]>
Branch: space-newtext
Changeset: r88075:dd3d24ec655b
Date: 2016-11-02 13:21 +0100
http://bitbucket.org/pypy/pypy/changeset/dd3d24ec655b/
Log: _codecs, _multibytecodec
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
@@ -42,16 +42,16 @@
w_input = space.newunicode(input)
w_exc = space.call_function(
w_cls,
- space.wrap(encoding),
+ space.newtext(encoding),
w_input,
- space.wrap(startpos),
- space.wrap(endpos),
- space.wrap(reason))
+ space.newint(startpos),
+ space.newint(endpos),
+ space.newtext(reason))
w_res = space.call_function(w_errorhandler, w_exc)
if (not space.isinstance_w(w_res, space.w_tuple)
or space.len_w(w_res) != 2
or not space.isinstance_w(
- space.getitem(w_res, space.wrap(0)),
+ space.getitem(w_res, space.newint(0)),
space.w_unicode)):
raise oefmt(space.w_TypeError,
"%s error handler must return (unicode, int) "
@@ -86,7 +86,7 @@
return self.unicodedata_handler
try:
w_unicodedata = space.getbuiltinmodule("unicodedata")
- w_getcode = space.getattr(w_unicodedata, space.wrap("_get_code"))
+ w_getcode = space.getattr(w_unicodedata,
space.newtext("_get_code"))
except OperationError:
return None
else:
@@ -140,9 +140,9 @@
def _lookup_codec_loop(space, encoding, normalized_encoding):
state = space.fromcache(CodecState)
if state.codec_need_encodings:
- w_import = space.getattr(space.builtin, space.wrap("__import__"))
+ w_import = space.getattr(space.builtin, space.newtext("__import__"))
# registers new codecs
- space.call_function(w_import, space.wrap("encodings"))
+ space.call_function(w_import, space.newtext("encodings"))
state.codec_need_encodings = False
if len(state.codec_search_path) == 0:
raise oefmt(space.w_LookupError,
@@ -150,7 +150,7 @@
"encoding")
for w_search in state.codec_search_path:
w_result = space.call_function(w_search,
- space.wrap(normalized_encoding))
+ space.newtext(normalized_encoding))
if not space.is_w(w_result, space.w_None):
if not (space.isinstance_w(w_result, space.w_tuple) and
space.len_w(w_result) == 4):
@@ -167,9 +167,9 @@
def check_exception(space, w_exc):
try:
- w_start = space.getattr(w_exc, space.wrap('start'))
- w_end = space.getattr(w_exc, space.wrap('end'))
- w_obj = space.getattr(w_exc, space.wrap('object'))
+ w_start = space.getattr(w_exc, space.newtext('start'))
+ w_end = space.getattr(w_exc, space.newtext('end'))
+ w_obj = space.getattr(w_exc, space.newtext('object'))
except OperationError as e:
if not e.match(space, space.w_AttributeError):
raise
@@ -189,23 +189,23 @@
def ignore_errors(space, w_exc):
check_exception(space, w_exc)
- w_end = space.getattr(w_exc, space.wrap('end'))
- return space.newtuple([space.wrap(u''), w_end])
+ w_end = space.getattr(w_exc, space.newtext('end'))
+ return space.newtuple([space.newunicode(u''), w_end])
def replace_errors(space, w_exc):
check_exception(space, w_exc)
- w_start = space.getattr(w_exc, space.wrap('start'))
- w_end = space.getattr(w_exc, space.wrap('end'))
+ w_start = space.getattr(w_exc, space.newtext('start'))
+ w_end = space.getattr(w_exc, space.newtext('end'))
size = space.int_w(w_end) - space.int_w(w_start)
if space.isinstance_w(w_exc, space.w_UnicodeEncodeError):
text = u'?' * size
- return space.newtuple([space.wrap(text), w_end])
+ return space.newtuple([space.newunicode(text), w_end])
elif space.isinstance_w(w_exc, space.w_UnicodeDecodeError):
text = u'\ufffd'
- return space.newtuple([space.wrap(text), w_end])
+ return space.newtuple([space.newunicode(text), w_end])
elif space.isinstance_w(w_exc, space.w_UnicodeTranslateError):
text = u'\ufffd' * size
- return space.newtuple([space.wrap(text), w_end])
+ return space.newtuple([space.newunicode(text), w_end])
else:
raise oefmt(space.w_TypeError,
"don't know how to handle %T in error callback", w_exc)
@@ -213,9 +213,9 @@
def xmlcharrefreplace_errors(space, w_exc):
check_exception(space, w_exc)
if space.isinstance_w(w_exc, space.w_UnicodeEncodeError):
- obj = space.realunicode_w(space.getattr(w_exc, space.wrap('object')))
- start = space.int_w(space.getattr(w_exc, space.wrap('start')))
- w_end = space.getattr(w_exc, space.wrap('end'))
+ obj = space.realunicode_w(space.getattr(w_exc,
space.newtext('object')))
+ start = space.int_w(space.getattr(w_exc, space.newtext('start')))
+ w_end = space.getattr(w_exc, space.newtext('end'))
end = space.int_w(w_end)
builder = UnicodeBuilder()
pos = start
@@ -231,7 +231,7 @@
builder.append(unicode(str(code)))
builder.append(u";")
pos += 1
- return space.newtuple([space.wrap(builder.build()), w_end])
+ return space.newtuple([space.newunicode(builder.build()), w_end])
else:
raise oefmt(space.w_TypeError,
"don't know how to handle %T in error callback", w_exc)
@@ -239,9 +239,9 @@
def backslashreplace_errors(space, w_exc):
check_exception(space, w_exc)
if space.isinstance_w(w_exc, space.w_UnicodeEncodeError):
- obj = space.realunicode_w(space.getattr(w_exc, space.wrap('object')))
- start = space.int_w(space.getattr(w_exc, space.wrap('start')))
- w_end = space.getattr(w_exc, space.wrap('end'))
+ obj = space.realunicode_w(space.getattr(w_exc,
space.newtext('object')))
+ start = space.int_w(space.getattr(w_exc, space.newtext('start')))
+ w_end = space.getattr(w_exc, space.newtext('end'))
end = space.int_w(w_end)
builder = UnicodeBuilder()
pos = start
@@ -263,7 +263,7 @@
builder.append_multiple_char(u'0', nb)
builder.append_slice(unicode(num), 2, lnum)
pos += 1
- return space.newtuple([space.wrap(builder.build()), w_end])
+ return space.newtuple([space.newunicode(builder.build()), w_end])
else:
raise oefmt(space.w_TypeError,
"don't know how to handle %T in error callback", w_exc)
@@ -309,19 +309,19 @@
encoding = space.sys.defaultencoding
else:
encoding = space.str_w(w_encoding)
- w_encoder = space.getitem(lookup_codec(space, encoding), space.wrap(0))
- w_res = space.call_function(w_encoder, w_obj, space.wrap(errors))
- return space.getitem(w_res, space.wrap(0))
+ w_encoder = space.getitem(lookup_codec(space, encoding), space.newint(0))
+ w_res = space.call_function(w_encoder, w_obj, space.newtext(errors))
+ return space.getitem(w_res, space.newint(0))
@unwrap_spec(errors='str_or_None')
def readbuffer_encode(space, w_data, errors='strict'):
s = space.getarg_w('s#', w_data)
- return space.newtuple([space.newbytes(s), space.wrap(len(s))])
+ return space.newtuple([space.newbytes(s), space.newint(len(s))])
@unwrap_spec(errors='str_or_None')
def charbuffer_encode(space, w_data, errors='strict'):
s = space.getarg_w('t#', w_data)
- return space.newtuple([space.wrap(s), space.wrap(len(s))])
+ return space.newtuple([space.newbytes(s), space.newint(len(s))])
@unwrap_spec(errors=str)
def decode(space, w_obj, w_encoding=None, errors='strict'):
@@ -338,13 +338,13 @@
encoding = space.sys.defaultencoding
else:
encoding = space.str_w(w_encoding)
- w_decoder = space.getitem(lookup_codec(space, encoding), space.wrap(1))
+ w_decoder = space.getitem(lookup_codec(space, encoding), space.newint(1))
if space.is_true(w_decoder):
- w_res = space.call_function(w_decoder, w_obj, space.wrap(errors))
+ w_res = space.call_function(w_decoder, w_obj, space.newtext(errors))
if (not space.isinstance_w(w_res, space.w_tuple) or space.len_w(w_res)
!= 2):
raise oefmt(space.w_TypeError,
"encoder must return a tuple (object, integer)")
- return space.getitem(w_res, space.wrap(0))
+ return space.getitem(w_res, space.newint(0))
else:
assert 0, "XXX, what to do here?"
@@ -379,7 +379,7 @@
state = space.fromcache(CodecState)
func = getattr(runicode, rname)
result = func(uni, len(uni), errors, state.encode_error_handler)
- return space.newtuple([space.newbytes(result), space.wrap(len(uni))])
+ return space.newtuple([space.newbytes(result), space.newint(len(uni))])
wrap_encoder.func_name = rname
globals()[name] = wrap_encoder
@@ -396,7 +396,7 @@
func = getattr(runicode, rname)
result, consumed = func(string, len(string), errors,
final, state.decode_error_handler)
- return space.newtuple([space.wrap(result), space.wrap(consumed)])
+ return space.newtuple([space.newunicode(result),
space.newint(consumed)])
wrap_decoder.func_name = rname
globals()[name] = wrap_decoder
@@ -444,7 +444,7 @@
result = runicode.unicode_encode_utf_8(
uni, len(uni), errors, state.encode_error_handler,
allow_surrogates=True)
- return space.newtuple([space.wrap(result), space.wrap(len(uni))])
+ return space.newtuple([space.newbytes(result), space.newint(len(uni))])
@unwrap_spec(string='bufferstr', errors='str_or_None',
w_final = WrappedDefault(False))
@@ -457,7 +457,7 @@
string, len(string), errors,
final, state.decode_error_handler,
allow_surrogates=True)
- return space.newtuple([space.wrap(result), space.wrap(consumed)])
+ return space.newtuple([space.newunicode(result), space.newint(consumed)])
@unwrap_spec(data='bufferstr', errors='str_or_None', byteorder=int,
w_final=WrappedDefault(False))
@@ -477,8 +477,8 @@
consumed = 0
res, consumed, byteorder = runicode.str_decode_utf_16_helper(
data, len(data), errors, final, state.decode_error_handler, byteorder)
- return space.newtuple([space.wrap(res), space.wrap(consumed),
- space.wrap(byteorder)])
+ return space.newtuple([space.newunicode(res), space.newint(consumed),
+ space.newtext(byteorder)])
@unwrap_spec(data='bufferstr', errors='str_or_None', byteorder=int,
w_final=WrappedDefault(False))
@@ -496,8 +496,8 @@
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)])
+ return space.newtuple([space.newunicode(res), space.newint(consumed),
+ space.newtext(byteorder)])
# ____________________________________________________________
# Charmap
@@ -583,7 +583,7 @@
if errors is None:
errors = 'strict'
if len(string) == 0:
- return space.newtuple([space.wrap(u''), space.wrap(0)])
+ return space.newtuple([space.newunicode(u''), space.newint(0)])
if space.is_none(w_mapping):
mapping = None
@@ -595,7 +595,7 @@
result, consumed = runicode.str_decode_charmap(
string, len(string), errors,
final, state.decode_error_handler, mapping)
- return space.newtuple([space.wrap(result), space.wrap(consumed)])
+ return space.newtuple([space.newunicode(result), space.newint(consumed)])
@unwrap_spec(uni=unicode, errors='str_or_None')
def charmap_encode(space, uni, errors="strict", w_mapping=None):
@@ -610,7 +610,7 @@
result = runicode.unicode_encode_charmap(
uni, len(uni), errors,
state.encode_error_handler, mapping)
- return space.newtuple([space.newbytes(result), space.wrap(len(uni))])
+ return space.newtuple([space.newbytes(result), space.newint(len(uni))])
@unwrap_spec(chars=unicode)
@@ -633,7 +633,7 @@
def call(self, name):
space = self.space
try:
- w_code = space.call_function(self.w_getcode, space.wrap(name))
+ w_code = space.call_function(self.w_getcode, space.newtext(name))
except OperationError as e:
if not e.match(space, space.w_KeyError):
raise
@@ -655,7 +655,7 @@
final, state.decode_error_handler,
unicode_name_handler)
- return space.newtuple([space.wrap(result), space.wrap(consumed)])
+ return space.newtuple([space.newunicode(result), space.newint(consumed)])
# ____________________________________________________________
# Unicode-internal
@@ -671,14 +671,14 @@
string = space.readbuf_w(w_string).as_str()
if len(string) == 0:
- return space.newtuple([space.wrap(u''), space.wrap(0)])
+ return space.newtuple([space.newunicode(u''), space.newint(0)])
final = True
state = space.fromcache(CodecState)
result, consumed = runicode.str_decode_unicode_internal(
string, len(string), errors,
final, state.decode_error_handler)
- return space.newtuple([space.wrap(result), space.wrap(consumed)])
+ return space.newtuple([space.newunicode(result), space.newint(consumed)])
# ____________________________________________________________
# support for the "string escape" codec
@@ -691,11 +691,11 @@
start = 1
end = len(result) - 1
assert end >= 0
- w_result = space.wrap(result[start:end])
- return space.newtuple([w_result, space.wrap(len(data))])
+ w_result = space.newbytes(result[start:end])
+ return space.newtuple([w_result, space.newint(len(data))])
@unwrap_spec(data=str, errors='str_or_None')
def escape_decode(space, data, errors='strict'):
from pypy.interpreter.pyparser.parsestring import PyString_DecodeEscape
result = PyString_DecodeEscape(space, data, errors, None)
- return space.newtuple([space.newbytes(result), space.wrap(len(data))])
+ return space.newtuple([space.newbytes(result), space.newint(len(data))])
diff --git a/pypy/module/_multibytecodec/interp_multibytecodec.py
b/pypy/module/_multibytecodec/interp_multibytecodec.py
--- a/pypy/module/_multibytecodec/interp_multibytecodec.py
+++ b/pypy/module/_multibytecodec/interp_multibytecodec.py
@@ -24,8 +24,8 @@
raise wrap_unicodedecodeerror(space, e, input, self.name)
except RuntimeError:
raise wrap_runtimeerror(space)
- return space.newtuple([space.wrap(output),
- space.wrap(len(input))])
+ return space.newtuple([space.newunicode(output),
+ space.newint(len(input))])
@unwrap_spec(input=unicode, errors="str_or_None")
def encode(self, space, input, errors=None):
@@ -41,7 +41,7 @@
except RuntimeError:
raise wrap_runtimeerror(space)
return space.newtuple([space.newbytes(output),
- space.wrap(len(input))])
+ space.newint(len(input))])
MultibyteCodec.typedef = TypeDef(
@@ -58,28 +58,28 @@
codec = c_codecs.getcodec(name)
except KeyError:
raise oefmt(space.w_LookupError, "no such codec is supported.")
- return space.wrap(MultibyteCodec(name, codec))
+ return MultibyteCodec(name, codec)
def wrap_unicodedecodeerror(space, e, input, name):
return OperationError(
space.w_UnicodeDecodeError,
space.newtuple([
- space.wrap(name),
+ space.newtext(name),
space.newbytes(input),
- space.wrap(e.start),
- space.wrap(e.end),
- space.wrap(e.reason)]))
+ space.newint(e.start),
+ space.newint(e.end),
+ space.newtext(e.reason)]))
def wrap_unicodeencodeerror(space, e, input, name):
raise OperationError(
space.w_UnicodeEncodeError,
space.newtuple([
- space.wrap(name),
- space.wrap(input),
- space.wrap(e.start),
- space.wrap(e.end),
- space.wrap(e.reason)]))
+ space.newtext(name),
+ space.newunicode(input),
+ space.newint(e.start),
+ space.newint(e.end),
+ space.newtext(e.reason)]))
def wrap_runtimeerror(space):
raise oefmt(space.w_RuntimeError, "internal codec error")
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit