[pypy-commit] pypy space-newtext: a few tweaks
cfbolz
pypy.commits at gmail.com
Wed Dec 14 11:46:41 EST 2016
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: space-newtext
Changeset: r89059:83148ff60b21
Date: 2016-12-14 17:37 +0100
http://bitbucket.org/pypy/pypy/changeset/83148ff60b21/
Log: a few tweaks
diff --git a/pypy/module/_pypyjson/interp_decoder.py b/pypy/module/_pypyjson/interp_decoder.py
--- a/pypy/module/_pypyjson/interp_decoder.py
+++ b/pypy/module/_pypyjson/interp_decoder.py
@@ -388,7 +388,7 @@
if space.isinstance_w(w_s, space.w_unicode):
raise oefmt(space.w_TypeError,
"Expected utf8-encoded str, got unicode")
- s = space.str_w(w_s)
+ s = space.bytes_w(w_s)
decoder = JSONDecoder(space, s)
try:
w_res = decoder.decode_any(0)
diff --git a/pypy/module/cppyy/capi/loadable_capi.py b/pypy/module/cppyy/capi/loadable_capi.py
--- a/pypy/module/cppyy/capi/loadable_capi.py
+++ b/pypy/module/cppyy/capi/loadable_capi.py
@@ -314,7 +314,7 @@
return rffi.cast(rffi.UCHAR, space.c_uint_w(call_capi(space, 'call_b', args)))
def c_call_c(space, cppmethod, cppobject, nargs, cargs):
args = [_Arg(h=cppmethod), _Arg(h=cppobject), _Arg(l=nargs), _Arg(vp=cargs)]
- return rffi.cast(rffi.CHAR, space.str_w(call_capi(space, 'call_c', args))[0])
+ return rffi.cast(rffi.CHAR, space.text_w(call_capi(space, 'call_c', args))[0])
def c_call_h(space, cppmethod, cppobject, nargs, cargs):
args = [_Arg(h=cppmethod), _Arg(h=cppobject), _Arg(l=nargs), _Arg(vp=cargs)]
return rffi.cast(rffi.SHORT, space.int_w(call_capi(space, 'call_h', args)))
diff --git a/pypy/module/cppyy/converter.py b/pypy/module/cppyy/converter.py
--- a/pypy/module/cppyy/converter.py
+++ b/pypy/module/cppyy/converter.py
@@ -181,10 +181,10 @@
def convert_argument(self, space, w_obj, address, call_local):
w_tc = space.findattr(w_obj, space.newtext('typecode'))
- if w_tc is not None and space.str_w(w_tc) != self.typecode:
+ if w_tc is not None and space.text_w(w_tc) != self.typecode:
raise oefmt(space.w_TypeError,
"expected %s pointer type, but received %s",
- self.typecode, space.str_w(w_tc))
+ self.typecode, space.text_w(w_tc))
x = rffi.cast(rffi.VOIDPP, address)
try:
x[0] = rffi.cast(rffi.VOIDP, get_rawbuffer(space, w_obj))
@@ -362,7 +362,7 @@
class CStringConverter(TypeConverter):
def convert_argument(self, space, w_obj, address, call_local):
x = rffi.cast(rffi.LONGP, address)
- arg = space.str_w(w_obj)
+ arg = space.text_w(w_obj)
x[0] = rffi.cast(rffi.LONG, rffi.str2charp(arg))
ba = rffi.cast(rffi.CCHARP, address)
ba[capi.c_function_arg_typeoffset(space)] = 'o'
@@ -555,7 +555,7 @@
arg = InstanceConverter._unwrap_object(self, space, w_obj)
return capi.c_stdstring2stdstring(space, arg)
else:
- return capi.c_charp2stdstring(space, space.str_w(w_obj))
+ return capi.c_charp2stdstring(space, space.text_w(w_obj))
def to_memory(self, space, w_obj, w_value, offset):
try:
@@ -838,7 +838,7 @@
arg = InstanceConverter._unwrap_object(self, space, w_obj)
return capi.backend.c_TString2TString(space, arg)
else:
- return capi.backend.c_charp2TString(space, space.str_w(w_obj))
+ return capi.backend.c_charp2TString(space, space.text_w(w_obj))
def free_argument(self, space, arg, call_local):
capi.c_destruct(space, self.cppclass, rffi.cast(capi.C_OBJECT, rffi.cast(rffi.VOIDPP, arg)[0]))
diff --git a/pypy/module/cppyy/ffitypes.py b/pypy/module/cppyy/ffitypes.py
--- a/pypy/module/cppyy/ffitypes.py
+++ b/pypy/module/cppyy/ffitypes.py
@@ -48,7 +48,7 @@
value = rffi.cast(rffi.CHAR, space.c_int_w(w_value))
else:
- value = space.str_w(w_value)
+ value = space.bytes_w(w_value)
if len(value) != 1:
raise oefmt(space.w_ValueError,
diff --git a/pypy/module/cppyy/interp_cppyy.py b/pypy/module/cppyy/interp_cppyy.py
--- a/pypy/module/cppyy/interp_cppyy.py
+++ b/pypy/module/cppyy/interp_cppyy.py
@@ -429,9 +429,9 @@
assert lltype.typeOf(cppthis) == capi.C_OBJECT
for i in range(len(args_w)):
try:
- s = self.space.str_w(args_w[i])
+ s = self.space.text_w(args_w[i])
except OperationError:
- s = self.space.str_w(self.space.getattr(args_w[i], self.space.newtext('__name__')))
+ s = self.space.text_w(self.space.getattr(args_w[i], self.space.newtext('__name__')))
s = capi.c_resolve_name(self.space, s)
if s != self.templ_args[i]:
raise oefmt(self.space.w_TypeError,
@@ -1009,7 +1009,7 @@
@unwrap_spec(args_w='args_w')
def __call__(self, args_w):
# TODO: this is broken but unused (see pythonify.py)
- fullname = "".join([self.name, '<', self.space.str_w(args_w[0]), '>'])
+ fullname = "".join([self.name, '<', self.space.text_w(args_w[0]), '>'])
return scope_byname(self.space, fullname)
W_CPPTemplateType.typedef = TypeDef(
@@ -1286,9 +1286,9 @@
rawobject = rffi.cast(capi.C_OBJECT, space.uint_w(w_obj))
w_cppclass = space.findattr(w_pycppclass, space.newtext("_cpp_proxy"))
if not w_cppclass:
- w_cppclass = scope_byname(space, space.str_w(w_pycppclass))
+ w_cppclass = scope_byname(space, space.text_w(w_pycppclass))
if not w_cppclass:
raise oefmt(space.w_TypeError,
- "no such class: %s", space.str_w(w_pycppclass))
+ "no such class: %s", space.text_w(w_pycppclass))
cppclass = space.interp_w(W_CPPClass, w_cppclass, can_be_None=False)
return wrap_cppobject(space, rawobject, cppclass, do_cast=cast, python_owns=owns)
diff --git a/pypy/module/posix/interp_posix.py b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -580,18 +580,16 @@
len_result = len(result)
result_w = [None] * len_result
for i in range(len_result):
- if type(result[i]) is unicode:
- result_w[i] = space.newunicode(result[i])
- else:
- w_bytes = space.newtext(result[i])
- try:
- result_w[i] = space.call_method(w_bytes,
- "decode", w_fs_encoding)
- except OperationError as e:
- # fall back to the original byte string
- if e.async(space):
- raise
- result_w[i] = w_bytes
+ res = result[i]
+ w_bytes = space.newtext(res)
+ try:
+ result_w[i] = space.call_method(w_bytes,
+ "decode", w_fs_encoding)
+ except OperationError as e:
+ # fall back to the original byte string
+ if e.async(space):
+ raise
+ result_w[i] = w_bytes
return space.newlist(result_w)
else:
dirname = space.str0_w(w_dirname)
More information about the pypy-commit
mailing list