Author: Carl Friedrich Bolz <[email protected]>
Branch: space-newtext
Changeset: r88809:485d75d6a904
Date: 2016-12-02 10:13 +0100
http://bitbucket.org/pypy/pypy/changeset/485d75d6a904/
Log: progress: remove space.w_str completely (replaced by space.w_bytes
and space.w_text). mark space.str_w as not_rpython, since many tests
still use it
diff too long, truncating to 2000 out of 2006 lines
diff --git a/pypy/interpreter/astcompiler/ast.py
b/pypy/interpreter/astcompiler/ast.py
--- a/pypy/interpreter/astcompiler/ast.py
+++ b/pypy/interpreter/astcompiler/ast.py
@@ -14,7 +14,7 @@
def check_string(space, w_obj):
- if not (space.isinstance_w(w_obj, space.w_str) or
+ if not (space.isinstance_w(w_obj, space.w_bytes) or
space.isinstance_w(w_obj, space.w_unicode)):
raise oefmt(space.w_TypeError,
"AST string must be of type str or unicode")
diff --git a/pypy/interpreter/astcompiler/misc.py
b/pypy/interpreter/astcompiler/misc.py
--- a/pypy/interpreter/astcompiler/misc.py
+++ b/pypy/interpreter/astcompiler/misc.py
@@ -110,9 +110,9 @@
def intern_if_common_string(space, w_const):
# only intern identifier-like strings
- if not space.is_w(space.type(w_const), space.w_str):
+ if not space.is_w(space.type(w_const), space.w_text):
return w_const
- for c in space.str_w(w_const):
+ for c in space.text_w(w_const):
if not (c.isalnum() or c == '_'):
return w_const
return space.new_interned_w_str(w_const)
diff --git a/pypy/interpreter/astcompiler/tools/asdl_py.py
b/pypy/interpreter/astcompiler/tools/asdl_py.py
--- a/pypy/interpreter/astcompiler/tools/asdl_py.py
+++ b/pypy/interpreter/astcompiler/tools/asdl_py.py
@@ -401,7 +401,7 @@
def check_string(space, w_obj):
- if not (space.isinstance_w(w_obj, space.w_str) or
+ if not (space.isinstance_w(w_obj, space.w_bytes) or
space.isinstance_w(w_obj, space.w_unicode)):
raise oefmt(space.w_TypeError,
"AST string must be of type str or unicode")
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -5,7 +5,7 @@
from rpython.rlib import jit, types
from rpython.rlib.debug import make_sure_not_resized
from rpython.rlib.objectmodel import (we_are_translated, newlist_hint,
- compute_unique_id, specialize)
+ compute_unique_id, specialize, not_rpython)
from rpython.rlib.signature import signature
from rpython.rlib.rarithmetic import r_uint, SHRT_MIN, SHRT_MAX, \
INT_MIN, INT_MAX, UINT_MAX, USHRT_MAX
@@ -328,8 +328,8 @@
constructed before there is an object space instance. """
return self
+ @not_rpython
def unwrap(self, space):
- """NOT_RPYTHON"""
# _____ this code is here to support testing only _____
return self
@@ -412,8 +412,9 @@
"""Base class for the interpreter-level implementations of object spaces.
http://pypy.readthedocs.org/en/latest/objspace.html"""
+ @not_rpython
def __init__(self, config=None):
- "NOT_RPYTHON: Basic initialization of objects."
+ "Basic initialization of objects."
self.fromcache = InternalSpaceCache(self).getorbuild
self.threadlocals = ThreadLocals()
# set recursion limit
@@ -489,8 +490,9 @@
except AttributeError:
return self.__class__.__name__
+ @not_rpython
def setbuiltinmodule(self, importname):
- """NOT_RPYTHON. load a lazy pypy/module and put it into sys.modules"""
+ """load a lazy pypy/module and put it into sys.modules"""
if '.' in importname:
fullname = importname
importname = fullname.rsplit('.', 1)[1]
@@ -548,8 +550,8 @@
self.setitem(w_modules, w_name, w_mod)
return w_mod
+ @not_rpython
def get_builtinmodule_to_install(self):
- """NOT_RPYTHON"""
try:
return self._builtinmodule_list
except AttributeError:
@@ -588,8 +590,9 @@
'posix', 'nt', 'pwd', 'signal', 'sys', 'thread', 'zipimport',
], None)
+ @not_rpython
def make_builtins(self):
- "NOT_RPYTHON: only for initializing the space."
+ "only for initializing the space."
from pypy.module.exceptions import Module
w_name = self.newtext('exceptions')
@@ -642,8 +645,8 @@
objects."""
raise NotImplementedError
+ @not_rpython
def export_builtin_exceptions(self):
- """NOT_RPYTHON"""
w_dic = self.exceptions_module.getdict(self)
w_keys = self.call_method(w_dic, "keys")
exc_types_w = {}
@@ -656,8 +659,8 @@
setattr(self, "w_" + excname, w_exc)
return exc_types_w
+ @not_rpython
def install_mixedmodule(self, mixedname, installed_builtin_modules):
- """NOT_RPYTHON"""
modname = self.setbuiltinmodule(mixedname)
if modname:
assert modname not in installed_builtin_modules, (
@@ -665,8 +668,9 @@
"app-level module %r" % (modname,))
installed_builtin_modules.append(modname)
+ @not_rpython
def setup_builtin_modules(self):
- "NOT_RPYTHON: only for initializing the space."
+ "only for initializing the space."
if self.config.objspace.usemodules.cpyext:
from pypy.module.cpyext.state import State
self.fromcache(State).build_api(self)
@@ -676,8 +680,9 @@
for mod in self.builtin_modules.values():
mod.setup_after_space_initialization()
+ @not_rpython
def initialize(self):
- """NOT_RPYTHON: Abstract method that should put some minimal
+ """Abstract method that should put some minimal
content into the w_builtins."""
def getexecutioncontext(self):
@@ -833,7 +838,7 @@
def new_interned_w_str(self, w_s):
assert isinstance(w_s, W_Root) # and is not None
- s = self.str_w(w_s)
+ s = self.bytes_w(w_s)
if not we_are_translated():
assert type(s) is str
w_s1 = self.interned_strings.get(s)
@@ -1289,14 +1294,16 @@
def exception_issubclass_w(self, w_cls1, w_cls2):
return self.issubtype_w(w_cls1, w_cls2)
+ @not_rpython
def new_exception_class(self, *args, **kwargs):
- "NOT_RPYTHON; convenience method to create excceptions in modules"
+ "convenience method to create excceptions in modules"
return new_exception_class(self, *args, **kwargs)
# end of special support code
+ @not_rpython
def eval(self, expression, w_globals, w_locals, hidden_applevel=False):
- "NOT_RPYTHON: For internal debugging."
+ "For internal debugging."
if isinstance(expression, str):
compiler = self.createcompiler()
expression = compiler.compile(expression, '?', 'eval', 0,
@@ -1305,9 +1312,10 @@
raise TypeError('space.eval(): expected a string, code or PyCode
object')
return expression.exec_code(self, w_globals, w_locals)
+ @not_rpython
def exec_(self, statement, w_globals, w_locals, hidden_applevel=False,
filename=None):
- "NOT_RPYTHON: For internal debugging."
+ "For internal debugging."
if filename is None:
filename = '?'
from pypy.interpreter.pycode import PyCode
@@ -1523,7 +1531,7 @@
return None
code = 's*'
if code == 's*':
- if self.isinstance_w(w_obj, self.w_str):
+ if self.isinstance_w(w_obj, self.w_bytes):
return w_obj.readbuf_w(self)
if self.isinstance_w(w_obj, self.w_unicode):
return self.str(w_obj).readbuf_w(self)
@@ -1536,7 +1544,7 @@
except BufferInterfaceNotFound:
self._getarg_error("string or buffer", w_obj)
elif code == 's#':
- if self.isinstance_w(w_obj, self.w_str):
+ if self.isinstance_w(w_obj, self.w_bytes):
return w_obj.str_w(self)
if self.isinstance_w(w_obj, self.w_unicode):
return self.str(w_obj).str_w(self)
@@ -1592,13 +1600,18 @@
return buf.as_str()
def str_or_None_w(self, w_obj):
- return None if self.is_none(w_obj) else self.str_w(w_obj)
+ # YYY rename
+ return None if self.is_none(w_obj) else self.bytes_w(w_obj)
+ def bytes_w(self, w_obj):
+ return w_obj.str_w(self)
+ text_w = bytes_w # equivalent to identifier_w on Python3
+
+ @not_rpython
def str_w(self, w_obj):
- return w_obj.str_w(self)
+ # XXX there are still some tests that call it
+ return self.bytes_w(w_obj)
- bytes_w = str_w # the same on Python3
- text_w = str_w # equivalent to identifier_w on Python3
def str0_w(self, w_obj):
"Like str_w, but rejects strings with NUL bytes."
@@ -1644,10 +1657,11 @@
return w_obj.float_w(self, allow_conversion)
def realstr_w(self, w_obj):
- # Like str_w, but only works if w_obj is really of type 'str'.
- if not self.isinstance_w(w_obj, self.w_str):
+ # YYY rename
+ # Like bytes_w, but only works if w_obj is really of type 'str'.
+ if not self.isinstance_w(w_obj, self.w_bytes):
raise oefmt(self.w_TypeError, "argument must be a string")
- return self.str_w(w_obj)
+ return self.bytes_w(w_obj)
def unicode_w(self, w_obj):
return w_obj.unicode_w(self)
@@ -1859,8 +1873,8 @@
class AppExecCache(SpaceCache):
+ @not_rpython
def build(cache, source):
- """ NOT_RPYTHON """
space = cache.space
# XXX will change once we have our own compiler
import py
diff --git a/pypy/interpreter/interactive.py b/pypy/interpreter/interactive.py
--- a/pypy/interpreter/interactive.py
+++ b/pypy/interpreter/interactive.py
@@ -152,7 +152,7 @@
if not k.startswith('w_')]))
del local['locals']
for w_name in self.space.unpackiterable(self.w_globals):
- local['w_' + self.space.str_w(w_name)] = (
+ local['w_' + self.space.text_w(w_name)] = (
self.space.getitem(self.w_globals, w_name))
code.interact(banner=banner, local=local)
# copy back 'w_' names
diff --git a/pypy/interpreter/main.py b/pypy/interpreter/main.py
--- a/pypy/interpreter/main.py
+++ b/pypy/interpreter/main.py
@@ -137,7 +137,7 @@
exitcode = space.int_w(w_exitcode,
allow_conversion=False)
except OperationError:
# not an integer: print it to stderr
- msg = space.str_w(space.str(w_exitcode))
+ msg = space.text_w(space.str(w_exitcode))
print >> sys.stderr, msg
exitcode = 1
raise SystemExit(exitcode)
diff --git a/pypy/interpreter/module.py b/pypy/interpreter/module.py
--- a/pypy/interpreter/module.py
+++ b/pypy/interpreter/module.py
@@ -91,7 +91,7 @@
def descr__reduce__(self, space):
w_name = space.finditem(self.w_dict, space.newtext('__name__'))
if (w_name is None or
- not space.isinstance_w(w_name, space.w_str)):
+ not space.isinstance_w(w_name, space.w_text)):
# maybe raise exception here (XXX this path is untested)
return space.w_None
w_modules = space.sys.get('modules')
diff --git a/pypy/interpreter/pycode.py b/pypy/interpreter/pycode.py
--- a/pypy/interpreter/pycode.py
+++ b/pypy/interpreter/pycode.py
@@ -25,7 +25,7 @@
# helper
-def unpack_str_tuple(space,w_str_tuple):
+def unpack_text_tuple(space,w_str_tuple):
return [space.text_w(w_el) for w_el in space.unpackiterable(w_str_tuple)]
@@ -382,14 +382,14 @@
if not space.isinstance_w(w_constants, space.w_tuple):
raise oefmt(space.w_TypeError, "Expected tuple for constants")
consts_w = space.fixedview(w_constants)
- names = unpack_str_tuple(space, w_names)
- varnames = unpack_str_tuple(space, w_varnames)
+ names = unpack_text_tuple(space, w_names)
+ varnames = unpack_text_tuple(space, w_varnames)
if w_freevars is not None:
- freevars = unpack_str_tuple(space, w_freevars)
+ freevars = unpack_text_tuple(space, w_freevars)
else:
freevars = []
if w_cellvars is not None:
- cellvars = unpack_str_tuple(space, w_cellvars)
+ cellvars = unpack_text_tuple(space, w_cellvars)
else:
cellvars = []
code = space.allocate_instance(PyCode, w_subtype)
diff --git a/pypy/interpreter/pyframe.py b/pypy/interpreter/pyframe.py
--- a/pypy/interpreter/pyframe.py
+++ b/pypy/interpreter/pyframe.py
@@ -904,7 +904,7 @@
def unpickle_block(space, w_tup):
w_opname, w_handlerposition, w_valuestackdepth =
space.unpackiterable(w_tup)
- opname = space.str_w(w_opname)
+ opname = space.text_w(w_opname)
handlerposition = space.int_w(w_handlerposition)
valuestackdepth = space.int_w(w_valuestackdepth)
assert valuestackdepth >= 0
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -956,10 +956,10 @@
space = self.space
if space.isinstance_w(w_2, space.w_tuple):
for w_t in space.fixedview(w_2):
- if space.isinstance_w(w_t, space.w_str):
+ if space.isinstance_w(w_t, space.w_bytes):
msg = "catching of string exceptions is deprecated"
space.warn(space.newtext(msg), space.w_DeprecationWarning)
- elif space.isinstance_w(w_2, space.w_str):
+ elif space.isinstance_w(w_2, space.w_bytes):
msg = "catching of string exceptions is deprecated"
space.warn(space.newtext(msg), space.w_DeprecationWarning)
return space.newbool(space.exception_match(w_1, w_2))
diff --git a/pypy/interpreter/pyparser/parsestring.py
b/pypy/interpreter/pyparser/parsestring.py
--- a/pypy/interpreter/pyparser/parsestring.py
+++ b/pypy/interpreter/pyparser/parsestring.py
@@ -227,7 +227,7 @@
def decode_utf8_recode(space, s, ps, end, recode_encoding):
u, ps = decode_utf8(space, s, ps, end)
w_v = unicodehelper.encode(space, space.newunicode(u), recode_encoding)
- v = space.str_w(w_v)
+ v = space.bytes_w(w_v)
return v, ps
def raise_app_valueerror(space, msg):
diff --git a/pypy/interpreter/pyparser/pyparse.py
b/pypy/interpreter/pyparser/pyparse.py
--- a/pypy/interpreter/pyparser/pyparse.py
+++ b/pypy/interpreter/pyparser/pyparse.py
@@ -8,7 +8,7 @@
if not space.isinstance_w(w_text, space.w_unicode):
raise error.SyntaxError("codec did not return a unicode object")
w_recoded = space.call_method(w_text, "encode", space.newtext("utf-8"))
- return space.str_w(w_recoded)
+ return space.bytes_w(w_recoded)
def _normalize_encoding(encoding):
"""returns normalized name for <encoding>
@@ -130,7 +130,7 @@
if e.match(space, space.w_UnicodeDecodeError):
e.normalize_exception(space)
w_message = space.str(e.get_w_value(space))
- raise error.SyntaxError(space.str_w(w_message))
+ raise error.SyntaxError(space.text_w(w_message))
raise
flags = compile_info.flags
diff --git a/pypy/interpreter/pyparser/test/test_parsestring.py
b/pypy/interpreter/pyparser/test/test_parsestring.py
--- a/pypy/interpreter/pyparser/test/test_parsestring.py
+++ b/pypy/interpreter/pyparser/test/test_parsestring.py
@@ -6,7 +6,7 @@
space = self.space
w_ret = parsestring.parsestr(space, encoding, literal)
if isinstance(value, str):
- assert space.type(w_ret) == space.w_str
+ assert space.type(w_ret) == space.w_bytes
assert space.str_w(w_ret) == value
elif isinstance(value, unicode):
assert space.type(w_ret) == space.w_unicode
@@ -58,7 +58,7 @@
w_ret = parsestring.parsestr(space, None, repr("hello"), True)
assert space.isinstance_w(w_ret, space.w_unicode)
w_ret = parsestring.parsestr(space, None, "b'hi'", True)
- assert space.isinstance_w(w_ret, space.w_str)
+ assert space.isinstance_w(w_ret, space.w_bytes)
w_ret = parsestring.parsestr(space, None, "r'hi'", True)
assert space.isinstance_w(w_ret, space.w_unicode)
diff --git a/pypy/interpreter/test/test_function.py
b/pypy/interpreter/test/test_function.py
--- a/pypy/interpreter/test/test_function.py
+++ b/pypy/interpreter/test/test_function.py
@@ -649,7 +649,7 @@
assert meth4.call_args(args) == obj2
# Check method returned from unbound_method.__get__()
# --- with an incompatible class
- w_meth5 = meth3.descr_method_get(space.wrap('hello'), space.w_str)
+ w_meth5 = meth3.descr_method_get(space.wrap('hello'), space.w_text)
assert space.is_w(w_meth5, w_meth3)
# Same thing, with an old-style class
w_oldclass = space.call_function(
@@ -660,7 +660,7 @@
# Reverse order of old/new styles
w_meth7 = descr_function_get(space, func, space.w_None, w_oldclass)
meth7 = space.unwrap(w_meth7)
- w_meth8 = meth7.descr_method_get(space.wrap('hello'), space.w_str)
+ w_meth8 = meth7.descr_method_get(space.wrap('hello'), space.w_text)
assert space.is_w(w_meth8, w_meth7)
class TestShortcuts(object):
diff --git a/pypy/interpreter/test/test_gateway.py
b/pypy/interpreter/test/test_gateway.py
--- a/pypy/interpreter/test/test_gateway.py
+++ b/pypy/interpreter/test/test_gateway.py
@@ -551,7 +551,7 @@
space = self.space
w = space.wrap
def g_run(space, w_type):
- assert space.is_w(w_type, space.w_str)
+ assert space.is_w(w_type, space.w_text)
return w(42)
app_g_run = gateway.interp2app_temp(g_run,
@@ -559,7 +559,7 @@
gateway.W_Root],
as_classmethod=True)
w_app_g_run = space.wrap(app_g_run)
- w_bound = space.get(w_app_g_run, w("hello"), space.w_str)
+ w_bound = space.get(w_app_g_run, w("hello"), space.w_text)
assert space.eq_w(space.call_function(w_bound), w(42))
def test_interp2app_fastcall(self):
diff --git a/pypy/interpreter/test/test_objspace.py
b/pypy/interpreter/test/test_objspace.py
--- a/pypy/interpreter/test/test_objspace.py
+++ b/pypy/interpreter/test/test_objspace.py
@@ -20,9 +20,9 @@
w_result = space.isinstance(w_i, space.w_int)
assert space.is_true(w_result)
assert space.isinstance_w(w_i, space.w_int)
- w_result = space.isinstance(w_i, space.w_str)
+ w_result = space.isinstance(w_i, space.w_bytes)
assert not space.is_true(w_result)
- assert not space.isinstance_w(w_i, space.w_str)
+ assert not space.isinstance_w(w_i, space.w_bytes)
def test_newlist(self):
w = self.space.wrap
diff --git a/pypy/module/__builtin__/__init__.py
b/pypy/module/__builtin__/__init__.py
--- a/pypy/module/__builtin__/__init__.py
+++ b/pypy/module/__builtin__/__init__.py
@@ -36,7 +36,7 @@
'None' : '(space.w_None)',
'False' : '(space.w_False)',
'True' : '(space.w_True)',
- 'bytes' : '(space.w_str)',
+ 'bytes' : '(space.w_bytes)',
'file' : 'state.get(space).w_file',
'open' : 'state.get(space).w_file',
diff --git a/pypy/module/__builtin__/compiling.py
b/pypy/module/__builtin__/compiling.py
--- a/pypy/module/__builtin__/compiling.py
+++ b/pypy/module/__builtin__/compiling.py
@@ -44,7 +44,7 @@
if space.isinstance_w(w_source, space.w_unicode):
w_utf_8_source = space.call_method(w_source, "encode",
space.newtext("utf-8"))
- source = space.str_w(w_utf_8_source)
+ source = space.bytes_w(w_utf_8_source)
# This flag tells the parser to reject any coding cookies it sees.
flags |= consts.PyCF_SOURCE_IS_UTF8
else:
@@ -69,7 +69,7 @@
are dictionaries, defaulting to the current current globals and locals.
If only globals is given, locals defaults to it.
"""
- if (space.isinstance_w(w_code, space.w_str) or
+ if (space.isinstance_w(w_code, space.w_bytes) or
space.isinstance_w(w_code, space.w_unicode)):
w_code = compile(space,
space.call_method(w_code, 'lstrip',
diff --git a/pypy/module/__builtin__/interp_classobj.py
b/pypy/module/__builtin__/interp_classobj.py
--- a/pypy/module/__builtin__/interp_classobj.py
+++ b/pypy/module/__builtin__/interp_classobj.py
@@ -64,7 +64,7 @@
self.w_dict = w_dict
def setname(self, space, w_newname):
- if not space.isinstance_w(w_newname, space.w_str):
+ if not space.isinstance_w(w_newname, space.w_text):
raise oefmt(space.w_TypeError, "__name__ must be a string object")
self.name = space.text_w(w_newname)
@@ -172,7 +172,7 @@
if not e.match(space, space.w_AttributeError):
raise
return "?"
- if space.isinstance_w(w_mod, space.w_str):
+ if space.isinstance_w(w_mod, space.w_text):
return space.text_w(w_mod)
return "?"
diff --git a/pypy/module/__builtin__/operation.py
b/pypy/module/__builtin__/operation.py
--- a/pypy/module/__builtin__/operation.py
+++ b/pypy/module/__builtin__/operation.py
@@ -44,7 +44,7 @@
# space.{get,set,del}attr()...
# Note that if w_name is already an exact string it must be returned
# unmodified (and not e.g. unwrapped-rewrapped).
- if not space.is_w(space.type(w_name), space.w_str):
+ if not space.is_w(space.type(w_name), space.w_text):
name = space.text_w(w_name) # typecheck
w_name = space.newtext(name) # rewrap as a real string
return w_name
@@ -223,7 +223,7 @@
table of interned strings whose purpose is to speed up dictionary lookups.
Return the string itself or the previously interned string object with the
same value."""
- if space.is_w(space.type(w_str), space.w_str):
+ if space.is_w(space.type(w_str), space.w_bytes):
return space.new_interned_w_str(w_str)
raise oefmt(space.w_TypeError, "intern() argument must be string.")
diff --git a/pypy/module/_cffi_backend/call_python.py
b/pypy/module/_cffi_backend/call_python.py
--- a/pypy/module/_cffi_backend/call_python.py
+++ b/pypy/module/_cffi_backend/call_python.py
@@ -91,7 +91,7 @@
if space.is_w(w_name, space.w_None):
w_name = space.getattr(w_python_callable, space.newtext('__name__'))
- name = space.str_w(w_name)
+ name = space.text_w(w_name)
ctx = ffi.ctxobj.ctx
index = parse_c_type.search_in_globals(ctx, name)
diff --git a/pypy/module/_cffi_backend/ccallback.py
b/pypy/module/_cffi_backend/ccallback.py
--- a/pypy/module/_cffi_backend/ccallback.py
+++ b/pypy/module/_cffi_backend/ccallback.py
@@ -98,7 +98,7 @@
def _repr_extra(self):
space = self.space
- return 'calling ' + space.str_w(space.repr(self.w_callable))
+ return 'calling ' + space.text_w(space.repr(self.w_callable))
def write_error_return_value(self, ll_res):
error_string = self.error_string
diff --git a/pypy/module/_cffi_backend/cdataobj.py
b/pypy/module/_cffi_backend/cdataobj.py
--- a/pypy/module/_cffi_backend/cdataobj.py
+++ b/pypy/module/_cffi_backend/cdataobj.py
@@ -232,10 +232,10 @@
from pypy.module._cffi_backend import ctypeprim
space = self.space
if isinstance(ctitem, ctypeprim.W_CTypePrimitive) and ctitem.size == 1:
- if space.isinstance_w(w_value, space.w_str):
+ if space.isinstance_w(w_value, space.w_bytes):
from rpython.rtyper.annlowlevel import llstr
from rpython.rtyper.lltypesystem.rstr import copy_string_to_raw
- value = space.str_w(w_value)
+ value = space.bytes_w(w_value)
if len(value) != length:
raise oefmt(space.w_ValueError,
"need a string of length %d, got %d",
@@ -324,7 +324,7 @@
return self._add_or_sub(w_other, -1)
def getcfield(self, w_attr):
- return self.ctype.getcfield(self.space.str_w(w_attr))
+ return self.ctype.getcfield(self.space.text_w(w_attr))
def getattr(self, w_attr):
cfield = self.getcfield(w_attr)
@@ -419,8 +419,8 @@
with self as ptr:
if not ptr:
raise oefmt(space.w_RuntimeError,
- "cannot use unpack() on %s",
- space.str_w(self.repr()))
+ "cannot use unpack() on %R",
+ self)
w_result = ctype.ctitem.unpack_ptr(ctype, ptr, length)
return w_result
@@ -565,7 +565,7 @@
def _repr_extra(self):
w_repr = self.space.repr(self.w_keepalive)
- return "handle to %s" % (self.space.str_w(w_repr),)
+ return "handle to %s" % (self.space.text_w(w_repr),)
class W_CDataFromBuffer(W_CData):
diff --git a/pypy/module/_cffi_backend/cdlopen.py
b/pypy/module/_cffi_backend/cdlopen.py
--- a/pypy/module/_cffi_backend/cdlopen.py
+++ b/pypy/module/_cffi_backend/cdlopen.py
@@ -155,7 +155,7 @@
p = rffi.ptradd(p, llmemory.raw_malloc_usage(n *
rffi.sizeof(GLOBAL_S)))
nintconsts = rffi.cast(rffi.CArrayPtr(CDL_INTCONST_S), p)
for i in range(n):
- decoder = StringDecoder(ffi, space.str_w(globals_w[i * 2]))
+ decoder = StringDecoder(ffi, space.bytes_w(globals_w[i * 2]))
nglobs[i].c_type_op = decoder.next_opcode()
nglobs[i].c_name = decoder.next_name()
op = getop(nglobs[i].c_type_op)
@@ -185,7 +185,7 @@
# 'desc' is the tuple of strings (desc_struct, desc_field_1, ..)
desc = space.fixedview(struct_unions_w[i])
nf1 = len(desc) - 1
- decoder = StringDecoder(ffi, space.str_w(desc[0]))
+ decoder = StringDecoder(ffi, space.bytes_w(desc[0]))
rffi.setintfield(nstructs[i], 'c_type_index',
decoder.next_4bytes())
flags = decoder.next_4bytes()
rffi.setintfield(nstructs[i], 'c_flags', flags)
@@ -202,7 +202,7 @@
rffi.setintfield(nstructs[i], 'c_first_field_index', nf)
rffi.setintfield(nstructs[i], 'c_num_fields', nf1)
for j in range(nf1):
- decoder = StringDecoder(ffi, space.str_w(desc[j + 1]))
+ decoder = StringDecoder(ffi, space.bytes_w(desc[j + 1]))
# this 'decoder' is for one of the other strings beyond
# the first one, describing one field each
type_op = decoder.next_opcode()
@@ -226,7 +226,7 @@
n = len(enums_w)
nenums = allocate_array(ffi, ENUM_S, n)
for i in range(n):
- decoder = StringDecoder(ffi, space.str_w(enums_w[i]))
+ decoder = StringDecoder(ffi, space.bytes_w(enums_w[i]))
rffi.setintfield(nenums[i], 'c_type_index', decoder.next_4bytes())
rffi.setintfield(nenums[i], 'c_type_prim', decoder.next_4bytes())
nenums[i].c_name = decoder.next_name()
@@ -241,7 +241,7 @@
n = len(typenames_w)
ntypenames = allocate_array(ffi, TYPENAME_S, n)
for i in range(n):
- decoder = StringDecoder(ffi, space.str_w(typenames_w[i]))
+ decoder = StringDecoder(ffi, space.bytes_w(typenames_w[i]))
rffi.setintfield(ntypenames[i],'c_type_index',decoder.next_4bytes())
ntypenames[i].c_name = decoder.next_name()
ffi.ctxobj.ctx.c_typenames = ntypenames
diff --git a/pypy/module/_cffi_backend/ctypeobj.py
b/pypy/module/_cffi_backend/ctypeobj.py
--- a/pypy/module/_cffi_backend/ctypeobj.py
+++ b/pypy/module/_cffi_backend/ctypeobj.py
@@ -175,7 +175,7 @@
def direct_typeoffsetof(self, w_field_or_index, following=0):
space = self.space
try:
- fieldname = space.str_w(w_field_or_index)
+ fieldname = space.text_w(w_field_or_index)
except OperationError as e:
if not e.match(space, space.w_TypeError):
raise
diff --git a/pypy/module/_cffi_backend/ctypeprim.py
b/pypy/module/_cffi_backend/ctypeprim.py
--- a/pypy/module/_cffi_backend/ctypeprim.py
+++ b/pypy/module/_cffi_backend/ctypeprim.py
@@ -25,14 +25,14 @@
def extra_repr(self, cdata):
w_ob = self.convert_to_object(cdata)
- return self.space.str_w(self.space.repr(w_ob))
+ return self.space.text_w(self.space.repr(w_ob))
def _alignof(self):
return self.align
def cast_str(self, w_ob):
space = self.space
- s = space.str_w(w_ob)
+ s = space.bytes_w(w_ob)
if len(s) != 1:
raise oefmt(space.w_TypeError,
"cannot cast string of length %d to ctype '%s'",
@@ -56,7 +56,7 @@
ptr = w_ob.unsafe_escaping_ptr()
value = rffi.cast(lltype.Signed, ptr)
value = self._cast_result(value)
- elif space.isinstance_w(w_ob, space.w_str):
+ elif space.isinstance_w(w_ob, space.w_bytes):
value = self.cast_str(w_ob)
value = self._cast_result(value)
elif space.isinstance_w(w_ob, space.w_unicode):
@@ -76,7 +76,7 @@
def _overflow(self, w_ob):
space = self.space
- s = space.str_w(space.str(w_ob))
+ s = space.text_w(space.str(w_ob))
raise oefmt(space.w_OverflowError,
"integer %s does not fit '%s'", s, self.name)
@@ -129,7 +129,7 @@
def _convert_to_char(self, w_ob):
space = self.space
- if space.isinstance_w(w_ob, space.w_str):
+ if space.isinstance_w(w_ob, space.w_bytes):
s = space.bytes_w(w_ob)
if len(s) == 1:
return s[0]
@@ -383,7 +383,7 @@
w_ob.ctype.name, self.name)
w_ob = w_ob.convert_to_object()
#
- if space.isinstance_w(w_ob, space.w_str):
+ if space.isinstance_w(w_ob, space.w_bytes):
value = self.cast_str(w_ob)
elif space.isinstance_w(w_ob, space.w_unicode):
value = self.cast_unicode(w_ob)
diff --git a/pypy/module/_cffi_backend/ctypeptr.py
b/pypy/module/_cffi_backend/ctypeptr.py
--- a/pypy/module/_cffi_backend/ctypeptr.py
+++ b/pypy/module/_cffi_backend/ctypeptr.py
@@ -74,9 +74,9 @@
else:
self._convert_array_from_listview(cdata, space.listview(w_ob))
elif self.accept_str:
- if not space.isinstance_w(w_ob, space.w_str):
+ if not space.isinstance_w(w_ob, space.w_bytes):
raise self._convert_error("str or list or tuple", w_ob)
- s = space.str_w(w_ob)
+ s = space.bytes_w(w_ob)
n = len(s)
if self.length >= 0 and n > self.length:
raise oefmt(space.w_IndexError,
@@ -107,8 +107,8 @@
with cdataobj as ptr:
if not ptr:
raise oefmt(space.w_RuntimeError,
- "cannot use string() on %s",
- space.str_w(cdataobj.repr()))
+ "cannot use string() on %R",
+ cdataobj)
#
from pypy.module._cffi_backend import ctypearray
length = maxlen
@@ -280,9 +280,9 @@
def _prepare_pointer_call_argument(self, w_init, cdata, keepalives, i):
space = self.space
- if self.accept_str and space.isinstance_w(w_init, space.w_str):
+ if self.accept_str and space.isinstance_w(w_init, space.w_bytes):
# special case to optimize strings passed to a "char *" argument
- value = w_init.str_w(space)
+ value = space.bytes_w(w_init)
keepalives[i] = value
buf, buf_flag = rffi.get_nonmovingbuffer_final_null(value)
rffi.cast(rffi.CCHARPP, cdata)[0] = buf
diff --git a/pypy/module/_cffi_backend/ctypestruct.py
b/pypy/module/_cffi_backend/ctypestruct.py
--- a/pypy/module/_cffi_backend/ctypestruct.py
+++ b/pypy/module/_cffi_backend/ctypestruct.py
@@ -138,7 +138,7 @@
lst_w = space.fixedview(w_ob)
for i in range(len(lst_w)):
w_key = lst_w[i]
- key = space.str_w(w_key)
+ key = space.text_w(w_key)
try:
cf = self._fields_dict[key]
except KeyError:
diff --git a/pypy/module/_cffi_backend/ffi_obj.py
b/pypy/module/_cffi_backend/ffi_obj.py
--- a/pypy/module/_cffi_backend/ffi_obj.py
+++ b/pypy/module/_cffi_backend/ffi_obj.py
@@ -152,7 +152,7 @@
space = self.space
if (accept & ACCEPT_STRING) and (
space.isinstance_w(w_x, space.w_basestring)):
- string = space.str_w(w_x)
+ string = space.text_w(w_x)
consider_fn_as_fnptr = (accept & CONSIDER_FN_AS_FNPTR) != 0
if jit.isconstant(string):
try:
@@ -226,7 +226,7 @@
space = self.space
if isinstance(w_arg, W_LibObject) and len(args_w) == 1:
# case 3 in the docstring
- return w_arg.address_of_func_or_global_var(space.str_w(args_w[0]))
+ return w_arg.address_of_func_or_global_var(space.text_w(args_w[0]))
#
w_ctype = self.ffi_type(w_arg, ACCEPT_CDATA)
if len(args_w) == 0:
diff --git a/pypy/module/_cffi_backend/func.py
b/pypy/module/_cffi_backend/func.py
--- a/pypy/module/_cffi_backend/func.py
+++ b/pypy/module/_cffi_backend/func.py
@@ -137,7 +137,7 @@
def _from_buffer(space, w_ctype, w_x):
buf = _fetch_as_read_buffer(space, w_x)
- if space.isinstance_w(w_x, space.w_str):
+ if space.isinstance_w(w_x, space.w_bytes):
_cdata = get_raw_address_of_string(space, w_x)
else:
try:
@@ -178,7 +178,7 @@
cache = space.fromcache(RawBytesCache)
rawbytes = cache.wdict.get(w_x)
if rawbytes is None:
- data = space.str_w(w_x)
+ data = space.bytes_w(w_x)
if we_are_translated() and not rgc.can_move(data):
lldata = llstr(data)
data_start = (llmemory.cast_ptr_to_adr(lldata) +
diff --git a/pypy/module/_cffi_backend/lib_obj.py
b/pypy/module/_cffi_backend/lib_obj.py
--- a/pypy/module/_cffi_backend/lib_obj.py
+++ b/pypy/module/_cffi_backend/lib_obj.py
@@ -222,7 +222,7 @@
else:
raise oefmt(self.space.w_AttributeError,
"cannot write to function or constant '%s'",
- self.space.str_w(w_attr))
+ self.space.text_w(w_attr))
def descr_delattr(self, w_attr):
self._get_attr(w_attr) # for the possible AttributeError
diff --git a/pypy/module/_cffi_backend/newtype.py
b/pypy/module/_cffi_backend/newtype.py
--- a/pypy/module/_cffi_backend/newtype.py
+++ b/pypy/module/_cffi_backend/newtype.py
@@ -309,7 +309,7 @@
field_w = space.fixedview(w_field)
if not (2 <= len(field_w) <= 4):
raise oefmt(space.w_TypeError, "bad field descr")
- fname = space.str_w(field_w[0])
+ fname = space.text_w(field_w[0])
ftype = space.interp_w(ctypeobj.W_CType, field_w[1])
fbitsize = -1
foffset = -1
@@ -568,7 +568,7 @@
enumvalues_w = space.fixedview(w_enumvalues)
if len(enumerators_w) != len(enumvalues_w):
raise oefmt(space.w_ValueError, "tuple args must have the same size")
- enumerators = [space.str_w(w) for w in enumerators_w]
+ enumerators = [space.text_w(w) for w in enumerators_w]
#
if (not isinstance(w_basectype, ctypeprim.W_CTypePrimitiveSigned) and
not isinstance(w_basectype, ctypeprim.W_CTypePrimitiveUnsigned)):
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
@@ -176,7 +176,7 @@
raise oefmt(space.w_TypeError, "wrong exception")
delta = space.int_w(w_end) - space.int_w(w_start)
- if delta < 0 or not (space.isinstance_w(w_obj, space.w_str) or
+ if delta < 0 or not (space.isinstance_w(w_obj, space.w_bytes) or
space.isinstance_w(w_obj, space.w_unicode)):
raise oefmt(space.w_TypeError, "wrong exception")
@@ -561,7 +561,7 @@
raise
return errorchar
- if space.isinstance_w(w_ch, space.w_str):
+ if space.isinstance_w(w_ch, space.w_bytes):
# Charmap may return a string
return space.bytes_w(w_ch)
elif space.isinstance_w(w_ch, space.w_int):
diff --git a/pypy/module/_csv/interp_csv.py b/pypy/module/_csv/interp_csv.py
--- a/pypy/module/_csv/interp_csv.py
+++ b/pypy/module/_csv/interp_csv.py
@@ -38,7 +38,7 @@
if w_src is None:
return default
try:
- return space.str_w(w_src)
+ return space.text_w(w_src)
except OperationError as e:
if e.match(space, space.w_TypeError):
raise oefmt(space.w_TypeError, '"%s" must be a string', attrname)
@@ -49,9 +49,9 @@
return default
if space.is_w(w_src, space.w_None):
return '\0'
- if not space.isinstance_w(w_src, space.w_str):
+ if not space.isinstance_w(w_src, space.w_text):
raise oefmt(space.w_TypeError, '"%s" must be string, not %T', name,
w_src)
- src = space.str_w(w_src)
+ src = space.text_w(w_src)
if len(src) == 1:
return src[0]
if len(src) == 0:
diff --git a/pypy/module/_csv/interp_writer.py
b/pypy/module/_csv/interp_writer.py
--- a/pypy/module/_csv/interp_writer.py
+++ b/pypy/module/_csv/interp_writer.py
@@ -42,9 +42,9 @@
if space.is_w(w_field, space.w_None):
field = ""
elif space.isinstance_w(w_field, space.w_float):
- field = space.str_w(space.repr(w_field))
+ field = space.text_w(space.repr(w_field))
else:
- field = space.str_w(space.str(w_field))
+ field = space.text_w(space.str(w_field))
#
if dialect.quoting == QUOTE_NONNUMERIC:
try:
diff --git a/pypy/module/_file/interp_file.py b/pypy/module/_file/interp_file.py
--- a/pypy/module/_file/interp_file.py
+++ b/pypy/module/_file/interp_file.py
@@ -56,7 +56,7 @@
return
if self.space.sys.track_resources:
w_repr = self.space.repr(self)
- str_repr = self.space.str_w(w_repr)
+ str_repr = self.space.text_w(w_repr)
w_msg = self.space.newtext("WARNING: unclosed file: " + str_repr)
self.space.resource_warning(w_msg, self.w_tb)
#
@@ -493,7 +493,7 @@
if w_name is None:
return '?'
else:
- return space.str_w(space.repr(w_name))
+ return space.text_w(space.repr(w_name))
def file_write(self, w_data):
"""write(str) -> None. Write string str to file.
@@ -526,7 +526,7 @@
self.check_writable()
lines = space.fixedview(w_lines)
for i, w_line in enumerate(lines):
- if not space.isinstance_w(w_line, space.w_str):
+ if not space.isinstance_w(w_line, space.w_bytes):
try:
if self.binary:
line = w_line.readbuf_w(space).as_str()
diff --git a/pypy/module/_io/interp_bufferedio.py
b/pypy/module/_io/interp_bufferedio.py
--- a/pypy/module/_io/interp_bufferedio.py
+++ b/pypy/module/_io/interp_bufferedio.py
@@ -89,7 +89,7 @@
length = rwbuffer.getlength()
w_data = space.call_method(self, "read", space.newint(length))
- if not space.isinstance_w(w_data, space.w_str):
+ if not space.isinstance_w(w_data, space.w_bytes):
raise oefmt(space.w_TypeError, "read() should return bytes")
data = space.bytes_w(w_data)
rwbuffer.setslice(0, data)
diff --git a/pypy/module/_io/interp_iobase.py b/pypy/module/_io/interp_iobase.py
--- a/pypy/module/_io/interp_iobase.py
+++ b/pypy/module/_io/interp_iobase.py
@@ -185,7 +185,7 @@
if trap_eintr(space, e):
continue
raise
- if not space.isinstance_w(w_readahead, space.w_str):
+ if not space.isinstance_w(w_readahead, space.w_bytes):
raise oefmt(space.w_IOError,
"peek() should have returned a bytes object, "
"not '%T'", w_readahead)
@@ -215,7 +215,7 @@
if trap_eintr(space, e):
continue
raise
- if not space.isinstance_w(w_read, space.w_str):
+ if not space.isinstance_w(w_read, space.w_bytes):
raise oefmt(space.w_IOError,
"peek() should have returned a bytes object, not "
"'%T'", w_read)
@@ -337,7 +337,7 @@
return w_data
break
- if not space.isinstance_w(w_data, space.w_str):
+ if not space.isinstance_w(w_data, space.w_bytes):
raise oefmt(space.w_TypeError, "read() should return bytes")
data = space.bytes_w(w_data)
if not data:
diff --git a/pypy/module/_io/interp_textio.py b/pypy/module/_io/interp_textio.py
--- a/pypy/module/_io/interp_textio.py
+++ b/pypy/module/_io/interp_textio.py
@@ -284,7 +284,7 @@
raise
return space.newtext('ascii')
else:
- if space.isinstance_w(w_encoding, space.w_str):
+ if space.isinstance_w(w_encoding, space.w_text):
return w_encoding
raise oefmt(space.w_IOError, "could not determine default encoding")
@@ -565,7 +565,7 @@
w_input = space.call_method(self.w_buffer, "read1",
space.newint(self.chunk_size))
- if not space.isinstance_w(w_input, space.w_str):
+ if not space.isinstance_w(w_input, space.w_bytes):
msg = "decoder getstate() should have returned a bytes " \
"object not '%T'"
raise oefmt(space.w_TypeError, msg, w_input)
@@ -897,7 +897,7 @@
# Just like _read_chunk, feed the decoder and save a snapshot.
w_chunk = space.call_method(self.w_buffer, "read",
space.newint(cookie.bytes_to_feed))
- if not space.isinstance_w(w_chunk, space.w_str):
+ if not space.isinstance_w(w_chunk, space.w_bytes):
msg = "underlying read() should have returned " \
"a bytes object, not '%T'"
raise oefmt(space.w_TypeError, msg, w_chunk)
diff --git a/pypy/module/_pypyjson/interp_encoder.py
b/pypy/module/_pypyjson/interp_encoder.py
--- a/pypy/module/_pypyjson/interp_encoder.py
+++ b/pypy/module/_pypyjson/interp_encoder.py
@@ -17,8 +17,8 @@
def raw_encode_basestring_ascii(space, w_string):
- if space.isinstance_w(w_string, space.w_str):
- s = space.str_w(w_string)
+ if space.isinstance_w(w_string, space.w_bytes):
+ s = space.bytes_w(w_string)
for i in range(len(s)):
c = s[i]
if c >= ' ' and c <= '~' and c != '"' and c != '\\':
diff --git a/pypy/module/_rawffi/alt/type_converter.py
b/pypy/module/_rawffi/alt/type_converter.py
--- a/pypy/module/_rawffi/alt/type_converter.py
+++ b/pypy/module/_rawffi/alt/type_converter.py
@@ -80,7 +80,7 @@
def maybe_handle_char_or_unichar_p(self, w_ffitype, w_obj):
w_type = jit.promote(self.space.type(w_obj))
if w_ffitype.is_char_p() and w_type is self.space.w_bytes:
- strval = self.space.str_w(w_obj)
+ strval = self.space.bytes_w(w_obj)
self.handle_char_p(w_ffitype, w_obj, strval)
return True
elif w_ffitype.is_unichar_p() and (w_type is self.space.w_bytes or
diff --git a/pypy/module/_rawffi/interp_rawffi.py
b/pypy/module/_rawffi/interp_rawffi.py
--- a/pypy/module/_rawffi/interp_rawffi.py
+++ b/pypy/module/_rawffi/interp_rawffi.py
@@ -99,7 +99,7 @@
def unpack_simple_shape(space, w_shape):
# 'w_shape' must be either a letter or a tuple (struct, 1).
- if space.isinstance_w(w_shape, space.w_str):
+ if space.isinstance_w(w_shape, space.w_text):
letter = space.text_w(w_shape)
return letter2tp(space, letter)
else:
diff --git a/pypy/module/_socket/interp_func.py
b/pypy/module/_socket/interp_func.py
--- a/pypy/module/_socket/interp_func.py
+++ b/pypy/module/_socket/interp_func.py
@@ -262,7 +262,7 @@
# host can be None, string or unicode
if space.is_w(w_host, space.w_None):
host = None
- elif space.isinstance_w(w_host, space.w_str):
+ elif space.isinstance_w(w_host, space.w_bytes):
host = space.bytes_w(w_host)
elif space.isinstance_w(w_host, space.w_unicode):
w_shost = space.call_method(w_host, "encode", space.newtext("idna"))
@@ -276,7 +276,7 @@
port = None
elif space.isinstance_w(w_port, space.w_int) or space.isinstance_w(w_port,
space.w_long):
port = str(space.int_w(w_port))
- elif space.isinstance_w(w_port, space.w_str):
+ elif space.isinstance_w(w_port, space.w_bytes):
port = space.bytes_w(w_port)
else:
raise oefmt(space.w_TypeError,
diff --git a/pypy/module/_sre/interp_sre.py b/pypy/module/_sre/interp_sre.py
--- a/pypy/module/_sre/interp_sre.py
+++ b/pypy/module/_sre/interp_sre.py
@@ -251,7 +251,7 @@
else:
literal = '\\' not in filter_as_string
use_builder = (
- space.isinstance_w(w_string, space.w_str) and literal)
+ space.isinstance_w(w_string, space.w_bytes) and
literal)
if literal:
w_filter = w_ptemplate
filter_is_callable = False
diff --git a/pypy/module/_warnings/interp_warnings.py
b/pypy/module/_warnings/interp_warnings.py
--- a/pypy/module/_warnings/interp_warnings.py
+++ b/pypy/module/_warnings/interp_warnings.py
@@ -249,7 +249,7 @@
w_text = space.str(w_message)
w_category = space.type(w_message)
elif (not space.isinstance_w(w_message, space.w_unicode) or
- not space.isinstance_w(w_message, space.w_str)):
+ not space.isinstance_w(w_message, space.w_bytes)):
w_text = space.str(w_message)
w_message = space.call_function(w_category, w_message)
else:
diff --git a/pypy/module/_winreg/interp_winreg.py
b/pypy/module/_winreg/interp_winreg.py
--- a/pypy/module/_winreg/interp_winreg.py
+++ b/pypy/module/_winreg/interp_winreg.py
@@ -217,7 +217,7 @@
if space.is_w(w_subkey, space.w_None):
subkey = None
else:
- subkey = space.str_w(w_subkey)
+ subkey = space.text_w(w_subkey)
with rffi.scoped_str2charp(value) as dataptr:
ret = rwinreg.RegSetValue(hkey, subkey, rwinreg.REG_SZ, dataptr,
len(value))
if ret != 0:
@@ -238,7 +238,7 @@
if space.is_w(w_subkey, space.w_None):
subkey = None
else:
- subkey = space.str_w(w_subkey)
+ subkey = space.text_w(w_subkey)
with lltype.scoped_alloc(rwin32.PLONG.TO, 1) as bufsize_p:
ret = rwinreg.RegQueryValue(hkey, subkey, None, bufsize_p)
bufSize = intmask(bufsize_p[0])
@@ -286,7 +286,7 @@
if space.isinstance_w(w_value, space.w_unicode):
w_value = space.call_method(w_value, 'encode',
space.newtext('mbcs'))
- buf = rffi.str2charp(space.str_w(w_value))
+ buf = rffi.str2charp(space.text_w(w_value))
buflen = space.len_w(w_value) + 1
elif typ == rwinreg.REG_MULTI_SZ:
@@ -306,7 +306,7 @@
if space.isinstance_w(w_item, space.w_unicode):
w_item = space.call_method(w_item, 'encode',
space.newtext('mbcs'))
- item = space.str_w(w_item)
+ item = space.bytes_w(w_item)
strings.append(item)
buflen += len(item) + 1
except OperationError as e:
@@ -438,7 +438,7 @@
if space.is_w(w_subkey, space.w_None):
subkey = None
else:
- subkey = space.str_w(w_subkey)
+ subkey = space.text_w(w_subkey)
null_dword = lltype.nullptr(rwin32.LPDWORD.TO)
with lltype.scoped_alloc(rwin32.LPDWORD.TO, 1) as retDataSize:
ret = rwinreg.RegQueryValueEx(hkey, subkey, null_dword, null_dword,
diff --git a/pypy/module/array/interp_array.py
b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -43,7 +43,7 @@
if len(__args__.arguments_w) > 0:
w_initializer = __args__.arguments_w[0]
w_initializer_type = space.type(w_initializer)
- if w_initializer_type is space.w_str:
+ if w_initializer_type is space.w_bytes:
a.descr_fromstring(space, w_initializer)
elif w_initializer_type is space.w_list:
a.descr_fromlist(space, w_initializer)
diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py
--- a/pypy/module/cpyext/api.py
+++ b/pypy/module/cpyext/api.py
@@ -577,7 +577,7 @@
# Common types with their own struct
for cpyname, pypyexpr in {
"PyType_Type": "space.w_type",
- "PyString_Type": "space.w_str",
+ "PyString_Type": "space.w_bytes",
"PyUnicode_Type": "space.w_unicode",
"PyBaseString_Type": "space.w_basestring",
"PyDict_Type": "space.w_dict",
diff --git a/pypy/module/cpyext/bytesobject.py
b/pypy/module/cpyext/bytesobject.py
--- a/pypy/module/cpyext/bytesobject.py
+++ b/pypy/module/cpyext/bytesobject.py
@@ -52,13 +52,13 @@
@bootstrap_function
def init_bytesobject(space):
"Type description of PyBytesObject"
- make_typedescr(space.w_str.layout.typedef,
+ make_typedescr(space.w_bytes.layout.typedef,
basestruct=PyBytesObject.TO,
attach=bytes_attach,
dealloc=bytes_dealloc,
realize=bytes_realize)
-PyString_Check, PyString_CheckExact = build_type_checkers("String", "w_str")
+PyString_Check, PyString_CheckExact = build_type_checkers("String", "w_bytes")
def new_empty_str(space, length):
"""
@@ -66,8 +66,8 @@
interpreter object. The ob_sval may be mutated, until bytes_realize() is
called. Refcount of the result is 1.
"""
- typedescr = get_typedescr(space.w_str.layout.typedef)
- py_obj = typedescr.allocate(space, space.w_str, length)
+ typedescr = get_typedescr(space.w_bytes.layout.typedef)
+ py_obj = typedescr.allocate(space, space.w_bytes, length)
py_str = rffi.cast(PyBytesObject, py_obj)
py_str.c_ob_shash = -1
py_str.c_ob_sstate = rffi.cast(rffi.INT, 0) # SSTATE_NOT_INTERNED
@@ -132,7 +132,7 @@
return _PyString_AsString(space, ref)
def _PyString_AsString(space, ref):
- if from_ref(space, rffi.cast(PyObject, ref.c_ob_type)) is space.w_str:
+ if from_ref(space, rffi.cast(PyObject, ref.c_ob_type)) is space.w_bytes:
pass # typecheck returned "ok" without forcing 'ref' at all
elif not PyString_Check(space, ref): # otherwise, use the alternate way
from pypy.module.cpyext.unicodeobject import (
@@ -182,7 +182,7 @@
@cpython_api([PyObject], Py_ssize_t, error=-1)
def PyString_Size(space, ref):
- if from_ref(space, rffi.cast(PyObject, ref.c_ob_type)) is space.w_str:
+ if from_ref(space, rffi.cast(PyObject, ref.c_ob_type)) is space.w_bytes:
ref = rffi.cast(PyBytesObject, ref)
return ref.c_ob_size
else:
diff --git a/pypy/module/cpyext/test/test_methodobject.py
b/pypy/module/cpyext/test/test_methodobject.py
--- a/pypy/module/cpyext/test/test_methodobject.py
+++ b/pypy/module/cpyext/test/test_methodobject.py
@@ -108,7 +108,7 @@
ml.c_ml_meth = rffi.cast(PyCFunction_typedef,
c_func.get_llhelper(space))
- method = api.PyDescr_NewMethod(space.w_str, ml)
+ method = api.PyDescr_NewMethod(space.w_bytes, ml)
assert repr(method).startswith(
"<built-in method 'func' of 'str' object ")
diff --git a/pypy/module/cpyext/test/test_typeobject.py
b/pypy/module/cpyext/test/test_typeobject.py
--- a/pypy/module/cpyext/test/test_typeobject.py
+++ b/pypy/module/cpyext/test/test_typeobject.py
@@ -436,9 +436,9 @@
api.Py_DecRef(ref)
def test_lookup(self, space, api):
- w_type = space.w_str
+ w_type = space.w_bytes
w_obj = api._PyType_Lookup(w_type, space.wrap("upper"))
- assert space.is_w(w_obj, space.w_str.getdictvalue(space, "upper"))
+ assert space.is_w(w_obj, space.w_bytes.getdictvalue(space, "upper"))
w_obj = api._PyType_Lookup(w_type, space.wrap("__invalid"))
assert w_obj is None
diff --git a/pypy/module/cpyext/test/test_unicodeobject.py
b/pypy/module/cpyext/test/test_unicodeobject.py
--- a/pypy/module/cpyext/test/test_unicodeobject.py
+++ b/pypy/module/cpyext/test/test_unicodeobject.py
@@ -231,7 +231,7 @@
def test_AsUTF8String(self, space, api):
w_u = space.wrap(u'sp\x09m')
w_res = api.PyUnicode_AsUTF8String(w_u)
- assert space.type(w_res) is space.w_str
+ assert space.type(w_res) is space.w_bytes
assert space.unwrap(w_res) == 'sp\tm'
def test_decode_utf8(self, space, api):
@@ -385,10 +385,10 @@
# This tests works at least on a Western Windows.
unichars = u"abc" + unichr(12345)
wbuf = rffi.unicode2wcharp(unichars)
- w_str = api.PyUnicode_EncodeMBCS(wbuf, 4, None)
+ w_bytes = api.PyUnicode_EncodeMBCS(wbuf, 4, None)
rffi.free_wcharp(wbuf)
- assert space.type(w_str) is space.w_str
- assert space.str_w(w_str) == "abc?"
+ assert space.type(w_bytes) is space.w_bytes
+ assert space.str_w(w_bytes) == "abc?"
def test_escape(self, space, api):
def test(ustr):
diff --git a/pypy/module/cpyext/typeobject.py b/pypy/module/cpyext/typeobject.py
--- a/pypy/module/cpyext/typeobject.py
+++ b/pypy/module/cpyext/typeobject.py
@@ -599,7 +599,7 @@
lltype.render_immortal(c_buf)
c_buf.c_bf_getsegcount = llhelper(bf_segcount.api_func.functype,
bf_segcount.api_func.get_wrapper(space))
- if space.is_w(w_type, space.w_str):
+ if space.is_w(w_type, space.w_bytes):
# Special case: str doesn't support get_raw_address(), so we have a
# custom get*buffer that instead gives the address of the char* in the
# PyBytesObject*!
@@ -703,7 +703,7 @@
pto.c_tp_dealloc = llhelper(
subtype_dealloc.api_func.functype,
subtype_dealloc.api_func.get_wrapper(space))
- if space.is_w(w_type, space.w_str):
+ if space.is_w(w_type, space.w_bytes):
pto.c_tp_itemsize = 1
elif space.is_w(w_type, space.w_tuple):
pto.c_tp_itemsize = rffi.sizeof(PyObject)
@@ -945,7 +945,7 @@
w_type = from_ref(space, rffi.cast(PyObject, type))
assert isinstance(w_type, W_TypeObject)
- if not space.isinstance_w(w_name, space.w_str):
+ if not space.isinstance_w(w_name, space.w_text):
return None
name = space.text_w(w_name)
w_obj = w_type.lookup(name)
diff --git a/pypy/module/micronumpy/casting.py
b/pypy/module/micronumpy/casting.py
--- a/pypy/module/micronumpy/casting.py
+++ b/pypy/module/micronumpy/casting.py
@@ -337,7 +337,7 @@
return float_dtype
elif space.isinstance_w(w_obj, space.w_complex):
return complex_dtype
- elif space.isinstance_w(w_obj, space.w_str):
+ elif space.isinstance_w(w_obj, space.w_bytes):
return variable_dtype(space, 'S%d' % space.len_w(w_obj))
elif space.isinstance_w(w_obj, space.w_unicode):
return new_unicode_dtype(space, space.len_w(w_obj))
diff --git a/pypy/module/micronumpy/compile.py
b/pypy/module/micronumpy/compile.py
--- a/pypy/module/micronumpy/compile.py
+++ b/pypy/module/micronumpy/compile.py
@@ -75,8 +75,8 @@
w_long = W_TypeObject("long")
w_tuple = W_TypeObject('tuple')
w_slice = W_TypeObject("slice")
- w_str = W_TypeObject("str")
- w_bytes = w_str
+ w_bytes = W_TypeObject("str")
+ w_text = w_bytes
w_unicode = W_TypeObject("unicode")
w_complex = W_TypeObject("complex")
w_dict = W_TypeObject("dict")
@@ -499,7 +499,7 @@
self.step = step
class StringObject(W_Root):
- tp = FakeSpace.w_str
+ tp = FakeSpace.w_bytes
def __init__(self, v):
self.v = v
diff --git a/pypy/module/micronumpy/concrete.py
b/pypy/module/micronumpy/concrete.py
--- a/pypy/module/micronumpy/concrete.py
+++ b/pypy/module/micronumpy/concrete.py
@@ -205,7 +205,7 @@
""" Return an index of single item if possible, otherwise raises
IndexError
"""
- if (space.isinstance_w(w_idx, space.w_str) or
+ if (space.isinstance_w(w_idx, space.w_text) or
space.isinstance_w(w_idx, space.w_slice) or
space.is_w(w_idx, space.w_None)):
raise IndexError
@@ -238,7 +238,7 @@
@jit.unroll_safe
def _prepare_slice_args(self, space, w_idx):
from pypy.module.micronumpy import boxes
- if space.isinstance_w(w_idx, space.w_str):
+ if space.isinstance_w(w_idx, space.w_text):
raise oefmt(space.w_IndexError, "only integers, slices (`:`), "
"ellipsis (`...`), numpy.newaxis (`None`) and integer or "
"boolean arrays are valid indices")
diff --git a/pypy/module/micronumpy/converters.py
b/pypy/module/micronumpy/converters.py
--- a/pypy/module/micronumpy/converters.py
+++ b/pypy/module/micronumpy/converters.py
@@ -60,7 +60,7 @@
def order_converter(space, w_order, default):
if space.is_none(w_order):
return default
- if not space.isinstance_w(w_order, space.w_str):
+ if not space.isinstance_w(w_order, space.w_text):
if space.is_true(w_order):
return NPY.FORTRANORDER
else:
diff --git a/pypy/module/micronumpy/ctors.py b/pypy/module/micronumpy/ctors.py
--- a/pypy/module/micronumpy/ctors.py
+++ b/pypy/module/micronumpy/ctors.py
@@ -130,7 +130,7 @@
# object does not have buffer interface
return w_object
raise
- format = space.getattr(w_buf,space.newbytes('format'))
+ format = space.getattr(w_buf, space.newtext('format'))
if format:
descr = _descriptor_from_pep3118_format(space, space.str_w(format))
if not descr:
diff --git a/pypy/module/micronumpy/descriptor.py
b/pypy/module/micronumpy/descriptor.py
--- a/pypy/module/micronumpy/descriptor.py
+++ b/pypy/module/micronumpy/descriptor.py
@@ -414,7 +414,7 @@
for i in range(len(names_w)):
w_name = names_w[i]
title = self.names[i][1]
- if not space.isinstance_w(w_name, space.w_str):
+ if not space.isinstance_w(w_name, space.w_text):
raise oefmt(space.w_ValueError,
"item #%d of names is of type %T and not string",
len(names), w_name)
@@ -561,7 +561,7 @@
r = space.newtext("'" + byteorder + self.char + str(size) +
"'")
else:
r = self.descr_get_name(space, quote=True)
- if space.isinstance_w(r, space.w_str):
+ if space.isinstance_w(r, space.w_text):
return space.newtext("dtype(%s)" % space.text_w(r))
return space.newtext("dtype(%s)" % space.text_w(space.repr(r)))
@@ -756,7 +756,7 @@
titles[i] = space.text_w(fldlist[1])
if len(fldlist) != 2:
raise oefmt(space.w_TypeError, "data type not understood")
- elif space.isinstance_w(w_fldname, space.w_str):
+ elif space.isinstance_w(w_fldname, space.w_text):
fldnames[i] = space.text_w(w_fldname)
else:
raise oefmt(space.w_TypeError, "data type not understood")
@@ -942,7 +942,7 @@
if not e.match(space, space.w_ImportError):
raise
# handle only simple cases for testing
- if space.isinstance_w(w_spec, space.w_str):
+ if space.isinstance_w(w_spec, space.w_text):
spec = [s.strip() for s in space.text_w(w_spec).split(',')]
w_lst = space.newlist([space.newtext(s) for s in spec])
if not space.isinstance_w(w_lst, space.w_list) or space.len_w(w_lst) < 1:
@@ -1347,7 +1347,7 @@
space.gettypefor(boxes.W_FloatingBox)],
NPY.CDOUBLE: [space.w_complex,
space.gettypefor(boxes.W_ComplexFloatingBox)],
- NPY.STRING: [space.w_str,
+ NPY.STRING: [space.w_bytes,
space.gettypefor(boxes.W_CharacterBox)],
NPY.UNICODE: [space.w_unicode],
NPY.VOID: [space.gettypefor(boxes.W_GenericBox)],
diff --git a/pypy/module/mmap/interp_mmap.py b/pypy/module/mmap/interp_mmap.py
--- a/pypy/module/mmap/interp_mmap.py
+++ b/pypy/module/mmap/interp_mmap.py
@@ -235,7 +235,7 @@
j = i
elif j > self.mmap.size:
j = self.mmap.size
- if not space.isinstance_w(w_item, space.w_str):
+ if not space.isinstance_w(w_item, space.w_bytes):
raise oefmt(space.w_IndexError,
"mmap slice assignment must be a string")
value = space.realstr_w(w_item)
diff --git a/pypy/module/pypyjit/interp_jit.py
b/pypy/module/pypyjit/interp_jit.py
--- a/pypy/module/pypyjit/interp_jit.py
+++ b/pypy/module/pypyjit/interp_jit.py
@@ -149,14 +149,14 @@
"set_param() takes at most 1 non-keyword argument, %d "
"given", len(args_w))
if len(args_w) == 1:
- text = space.str_w(args_w[0])
+ text = space.text_w(args_w[0])
try:
jit.set_user_param(None, text)
except ValueError:
raise oefmt(space.w_ValueError, "error in JIT parameters string")
for key, w_value in kwds_w.items():
if key == 'enable_opts':
- jit.set_param(None, 'enable_opts', space.str_w(w_value))
+ jit.set_param(None, 'enable_opts', space.text_w(w_value))
else:
intval = space.int_w(w_value)
for name, _ in unroll_parameters:
diff --git a/pypy/module/pypyjit/interp_resop.py
b/pypy/module/pypyjit/interp_resop.py
--- a/pypy/module/pypyjit/interp_resop.py
+++ b/pypy/module/pypyjit/interp_resop.py
@@ -280,7 +280,7 @@
if self.type == "bridge":
code_repr = 'bridge no %d' % self.bridge_no
else:
- code_repr = space.str_w(space.repr(self.w_green_key))
+ code_repr = space.text_w(space.repr(self.w_green_key))
return space.newtext('<JitLoopInfo %s, %d operations, starting at
<%s>>' %
(self.jd_name, lgt, code_repr))
diff --git a/pypy/module/struct/formatiterator.py
b/pypy/module/struct/formatiterator.py
--- a/pypy/module/struct/formatiterator.py
+++ b/pypy/module/struct/formatiterator.py
@@ -98,7 +98,7 @@
def accept_str_arg(self):
w_obj = self.accept_obj_arg()
- return self.space.str_w(w_obj)
+ return self.space.bytes_w(w_obj)
def accept_unicode_arg(self):
w_obj = self.accept_obj_arg()
diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -45,9 +45,9 @@
return space.lookup_in_type(space.w_tuple, '__iter__')
@specialize.memo()
-def str_getitem(space):
+def bytes_getitem(space):
"Utility that returns the app-level descriptor str.__getitem__."
- return space.lookup_in_type(space.w_str, '__getitem__')
+ return space.lookup_in_type(space.w_bytes, '__getitem__')
@specialize.memo()
def unicode_getitem(space):
@@ -845,10 +845,10 @@
"'%%T'", w_obj)
w_result = space.get_and_call_function(w_impl, w_obj)
- if space.isinstance_w(w_result, space.w_str):
+ if space.isinstance_w(w_result, space.w_text):
return w_result
try:
- result = space.str_w(w_result) # YYY
+ result = space.text_w(w_result)
except OperationError, e:
if not e.match(space, space.w_TypeError):
raise
diff --git a/pypy/objspace/fake/test/test_objspace.py
b/pypy/objspace/fake/test/test_objspace.py
--- a/pypy/objspace/fake/test/test_objspace.py
+++ b/pypy/objspace/fake/test/test_objspace.py
@@ -40,7 +40,7 @@
def test_constants(self):
space = self.space
space.translates(lambda: (space.w_None, space.w_True, space.w_False,
- space.w_int, space.w_str, space.w_object,
+ space.w_int, space.w_bytes, space.w_object,
space.w_TypeError))
def test_wrap(self):
diff --git a/pypy/objspace/std/classdict.py b/pypy/objspace/std/classdict.py
--- a/pypy/objspace/std/classdict.py
+++ b/pypy/objspace/std/classdict.py
@@ -18,8 +18,8 @@
def getitem(self, w_dict, w_key):
space = self.space
w_lookup_type = space.type(w_key)
- if (space.is_w(w_lookup_type, space.w_str) or # Most common path first
- space.abstract_issubclass_w(w_lookup_type, space.w_str)):
+ if (space.is_w(w_lookup_type, space.w_text) or # Most common path
first
+ space.abstract_issubclass_w(w_lookup_type, space.w_text)):
return self.getitem_str(w_dict, space.text_w(w_key))
elif space.abstract_issubclass_w(w_lookup_type, space.w_unicode):
try:
@@ -38,7 +38,7 @@
def setitem(self, w_dict, w_key, w_value):
space = self.space
- if space.is_w(space.type(w_key), space.w_str):
+ if space.is_w(space.type(w_key), space.w_text):
self.setitem_str(w_dict, self.space.text_w(w_key), w_value)
else:
raise oefmt(space.w_TypeError,
@@ -70,7 +70,7 @@
def delitem(self, w_dict, w_key):
space = self.space
w_key_type = space.type(w_key)
- if space.is_w(w_key_type, space.w_str):
+ if space.is_w(w_key_type, space.w_text):
key = self.space.text_w(w_key)
if not self.unerase(w_dict.dstorage).deldictvalue(space, key):
raise KeyError
diff --git a/pypy/objspace/std/complexobject.py
b/pypy/objspace/std/complexobject.py
--- a/pypy/objspace/std/complexobject.py
+++ b/pypy/objspace/std/complexobject.py
@@ -175,7 +175,7 @@
return (space.float_w(real), space.float_w(imag))
#
# Check that it is not a string (on which space.float() would succeed).
- if (space.isinstance_w(w_complex, space.w_str) or
+ if (space.isinstance_w(w_complex, space.w_bytes) or
space.isinstance_w(w_complex, space.w_unicode)):
raise oefmt(space.w_TypeError,
"complex number expected, got '%T'", w_complex)
@@ -299,14 +299,14 @@
and space.is_w(space.type(w_real), space.w_complex)):
return w_real
- if space.isinstance_w(w_real, space.w_str) or \
+ if space.isinstance_w(w_real, space.w_bytes) or \
space.isinstance_w(w_real, space.w_unicode):
# a string argument
if not noarg2:
raise oefmt(space.w_TypeError, "complex() can't take second"
" arg if first is a string")
try:
- realstr, imagstr = _split_complex(space.str_w(w_real))
+ realstr, imagstr = _split_complex(space.text_w(w_real))
except ValueError:
raise oefmt(space.w_ValueError,
"complex() arg is a malformed string")
diff --git a/pypy/objspace/std/dictmultiobject.py
b/pypy/objspace/std/dictmultiobject.py
--- a/pypy/objspace/std/dictmultiobject.py
+++ b/pypy/objspace/std/dictmultiobject.py
@@ -1060,7 +1060,7 @@
def is_correct_type(self, w_obj):
space = self.space
- return space.is_w(space.type(w_obj), space.w_str)
+ return space.is_w(space.type(w_obj), space.w_bytes)
def get_empty_storage(self):
res = {}
@@ -1199,7 +1199,7 @@
space = self.space
# XXX there are many more types
return (space.is_w(w_lookup_type, space.w_NoneType) or
- space.is_w(w_lookup_type, space.w_str) or
+ space.is_w(w_lookup_type, space.w_bytes) or
space.is_w(w_lookup_type, space.w_unicode)
)
diff --git a/pypy/objspace/std/formatting.py b/pypy/objspace/std/formatting.py
--- a/pypy/objspace/std/formatting.py
+++ b/pypy/objspace/std/formatting.py
@@ -334,19 +334,10 @@
def unknown_fmtchar(self):
space = self.space
c = self.fmt[self.fmtpos - 1]
- if do_unicode:
- w_defaultencoding = space.call_function(
- space.sys.get('getdefaultencoding'))
- w_s = space.call_method(space.newunicode(c),
- "encode",
- w_defaultencoding,
- space.newtext('replace'))
- s = space.str_w(w_s)
- else:
- s = c
+ w_s = space.newunicode(c) if do_unicode else space.newbytes(c)
raise oefmt(space.w_ValueError,
- "unsupported format character '%s' (%s) at index %d",
- s, hex(ord(c)), self.fmtpos - 1)
+ "unsupported format character %R (%s) at index %d",
+ w_s, hex(ord(c)), self.fmtpos - 1)
@specialize.argtype(1)
def std_wp(self, r):
@@ -437,7 +428,7 @@
if space.isinstance_w(w_result,
space.w_unicode):
raise NeedUnicodeFormattingError
- return space.str_w(w_result)
+ return space.bytes_w(w_result)
def fmt_s(self, w_value):
space = self.space
@@ -462,8 +453,8 @@
def fmt_c(self, w_value):
self.prec = -1 # just because
space = self.space
- if space.isinstance_w(w_value, space.w_str):
- s = space.str_w(w_value)
+ if space.isinstance_w(w_value, space.w_bytes):
+ s = space.bytes_w(w_value)
if len(s) != 1:
raise oefmt(space.w_TypeError, "%c requires int or char")
self.std_wp(s)
@@ -511,7 +502,7 @@
def format(space, w_fmt, values_w, w_valuedict, do_unicode):
"Entry point"
if not do_unicode:
- fmt = space.str_w(w_fmt)
+ fmt = space.bytes_w(w_fmt)
formatter = StringFormatter(space, fmt, values_w, w_valuedict)
try:
result = formatter.format()
diff --git a/pypy/objspace/std/intobject.py b/pypy/objspace/std/intobject.py
--- a/pypy/objspace/std/intobject.py
+++ b/pypy/objspace/std/intobject.py
@@ -694,7 +694,7 @@
# we cannot construct a subclass of int instance with an
# an overflowing long
value = space.int_w(w_obj, allow_conversion=False)
- elif space.isinstance_w(w_value, space.w_str):
+ elif space.isinstance_w(w_value, space.w_bytes):
value, w_longval = _string_to_int_or_long(space, w_value,
space.text_w(w_value))
elif space.isinstance_w(w_value, space.w_unicode):
diff --git a/pypy/objspace/std/kwargsdict.py b/pypy/objspace/std/kwargsdict.py
--- a/pypy/objspace/std/kwargsdict.py
+++ b/pypy/objspace/std/kwargsdict.py
@@ -39,7 +39,7 @@
def is_correct_type(self, w_obj):
space = self.space
- return space.is_w(space.type(w_obj), space.w_str)
+ return space.is_w(space.type(w_obj), space.w_text)
def _never_equal_to(self, w_lookup_type):
return False
diff --git a/pypy/objspace/std/mapdict.py b/pypy/objspace/std/mapdict.py
--- a/pypy/objspace/std/mapdict.py
+++ b/pypy/objspace/std/mapdict.py
@@ -738,7 +738,7 @@
def getitem(self, w_dict, w_key):
space = self.space
w_lookup_type = space.type(w_key)
- if space.is_w(w_lookup_type, space.w_str):
+ if space.is_w(w_lookup_type, space.w_text):
return self.getitem_str(w_dict, space.text_w(w_key))
elif _never_equal_to_string(space, w_lookup_type):
return None
@@ -757,7 +757,7 @@
def setitem(self, w_dict, w_key, w_value):
space = self.space
- if space.is_w(space.type(w_key), space.w_str):
+ if space.is_w(space.type(w_key), space.w_text):
self.setitem_str(w_dict, self.space.text_w(w_key), w_value)
else:
self.switch_to_object_strategy(w_dict)
@@ -765,7 +765,7 @@
def setdefault(self, w_dict, w_key, w_default):
space = self.space
- if space.is_w(space.type(w_key), space.w_str):
+ if space.is_w(space.type(w_key), space.w_text):
key = space.text_w(w_key)
w_result = self.getitem_str(w_dict, key)
if w_result is not None:
@@ -780,7 +780,7 @@
space = self.space
w_key_type = space.type(w_key)
w_obj = self.unerase(w_dict.dstorage)
- if space.is_w(w_key_type, space.w_str):
+ if space.is_w(w_key_type, space.w_text):
key = self.space.text_w(w_key)
flag = w_obj.deldictvalue(space, key)
if not flag:
diff --git a/pypy/objspace/std/marshal_impl.py
b/pypy/objspace/std/marshal_impl.py
--- a/pypy/objspace/std/marshal_impl.py
+++ b/pypy/objspace/std/marshal_impl.py
@@ -205,7 +205,7 @@
m.put(pack_float(w_float.floatval))
else:
m.start(TYPE_FLOAT)
- m.put_pascal(space.str_w(space.repr(w_float)))
+ m.put_pascal(space.text_w(space.repr(w_float)))
@unmarshaller(TYPE_FLOAT)
def unmarshal_float(space, u, tc):
@@ -227,8 +227,8 @@
w_real = space.newfloat(w_complex.realval)
w_imag = space.newfloat(w_complex.imagval)
m.start(TYPE_COMPLEX)
- m.put_pascal(space.str_w(space.repr(w_real)))
- m.put_pascal(space.str_w(space.repr(w_imag)))
+ m.put_pascal(space.text_w(space.repr(w_real)))
+ m.put_pascal(space.text_w(space.repr(w_imag)))
@unmarshaller(TYPE_COMPLEX)
def unmarshal_complex(space, u, tc):
@@ -248,7 +248,7 @@
@marshaller(W_BytesObject)
def marshal_bytes(space, w_str, m):
- s = space.str_w(w_str)
+ s = space.bytes_w(w_str)
if m.version >= 1 and space.is_interned_str(s):
# we use a native rtyper stringdict for speed
try:
@@ -363,7 +363,7 @@
def unmarshal_str(u):
w_obj = u.get_w_obj()
try:
- return u.space.str_w(w_obj)
+ return u.space.bytes_w(w_obj)
except OperationError as e:
if e.match(u.space, u.space.w_TypeError):
u.raise_exc('invalid marshal data for code object')
diff --git a/pypy/objspace/std/objectobject.py
b/pypy/objspace/std/objectobject.py
--- a/pypy/objspace/std/objectobject.py
+++ b/pypy/objspace/std/objectobject.py
@@ -212,7 +212,7 @@
def descr___format__(space, w_obj, w_format_spec):
if space.isinstance_w(w_format_spec, space.w_unicode):
w_as_str = space.call_function(space.w_unicode, w_obj)
- elif space.isinstance_w(w_format_spec, space.w_str):
+ elif space.isinstance_w(w_format_spec, space.w_bytes):
w_as_str = space.str(w_obj)
else:
raise oefmt(space.w_TypeError, "format_spec must be a string")
diff --git a/pypy/objspace/std/objspace.py b/pypy/objspace/std/objspace.py
--- a/pypy/objspace/std/objspace.py
+++ b/pypy/objspace/std/objspace.py
@@ -89,10 +89,12 @@
for typedef, cls in builtin_type_classes.items():
w_type = self.gettypeobject(typedef)
self.builtin_types[typedef.name] = w_type
- setattr(self, 'w_' + typedef.name, w_type)
+ if typedef.name != "str":
+ setattr(self, 'w_' + typedef.name, w_type)
+ else:
+ self.w_bytes = w_type
self._interplevel_classes[w_type] = cls
- self.w_bytes = self.w_str
- self.w_text = self.w_str # this is w_unicode on Py3
+ self.w_text = self.w_bytes # this is w_unicode on Py3
self.w_dict.flag_map_or_seq = 'M'
self.builtin_types["NotImplemented"] = self.w_NotImplemented
self.builtin_types["Ellipsis"] = self.w_Ellipsis
@@ -519,9 +521,9 @@
return self.lookup(w_obj, '__iter__') is tuple_iter(self)
def _str_uses_no_iter(self, w_obj):
- from pypy.objspace.descroperation import str_getitem
+ from pypy.objspace.descroperation import bytes_getitem
return (self.lookup(w_obj, '__iter__') is None and
- self.lookup(w_obj, '__getitem__') is str_getitem(self))
+ self.lookup(w_obj, '__getitem__') is bytes_getitem(self))
def _uni_uses_no_iter(self, w_obj):
from pypy.objspace.descroperation import unicode_getitem
@@ -557,7 +559,7 @@
# fast path: XXX this is duplicating most of the logic
# from the default __getattribute__ and the getattr() method...
- name = self.str_w(w_name)
+ name = self.text_w(w_name)
w_descr = w_type.lookup(name)
e = None
if w_descr is not None:
diff --git a/pypy/objspace/std/stringmethods.py
b/pypy/objspace/std/stringmethods.py
--- a/pypy/objspace/std/stringmethods.py
+++ b/pypy/objspace/std/stringmethods.py
@@ -18,7 +18,7 @@
assert start >= 0
assert stop >= 0
#if start == 0 and stop == len(s) and space.is_w(space.type(orig_obj),
- # space.w_str):
+ # space.w_bytes):
# return orig_obj
return self._new(s[start:stop])
diff --git a/pypy/objspace/std/test/test_dictmultiobject.py
b/pypy/objspace/std/test/test_dictmultiobject.py
--- a/pypy/objspace/std/test/test_dictmultiobject.py
+++ b/pypy/objspace/std/test/test_dictmultiobject.py
@@ -1093,7 +1093,7 @@
if isinstance(w_obj, FakeString):
return str
return type(w_obj)
- w_str = str
+ w_bytes = str
w_text = str
def str_w(self, string):
diff --git a/pypy/objspace/std/test/test_newformat.py
b/pypy/objspace/std/test/test_newformat.py
--- a/pypy/objspace/std/test/test_newformat.py
+++ b/pypy/objspace/std/test/test_newformat.py
@@ -222,7 +222,7 @@
class AppTestStringFormat(BaseStringFormatTests):
def setup_class(cls):
- cls.w_s = cls.space.w_str
+ cls.w_s = cls.space.w_bytes
def test_string_conversion(self):
class x(object):
diff --git a/pypy/objspace/std/test/test_obj.py
b/pypy/objspace/std/test/test_obj.py
--- a/pypy/objspace/std/test/test_obj.py
+++ b/pypy/objspace/std/test/test_obj.py
@@ -283,4 +283,4 @@
# if it crashes, it means that space._type_isinstance didn't go through
# the fast path, and tries to call type() (which is set to None just
# above)
- space.isinstance_w(w_a, space.w_str) # does not crash
+ space.isinstance_w(w_a, space.w_bytes) # does not crash
diff --git a/pypy/objspace/std/test/test_stdobjspace.py
b/pypy/objspace/std/test/test_stdobjspace.py
--- a/pypy/objspace/std/test/test_stdobjspace.py
+++ b/pypy/objspace/std/test/test_stdobjspace.py
@@ -43,7 +43,7 @@
from pypy.objspace.std.iterobject import W_SeqIterObject
space = self.space
- assert space._get_interplevel_cls(space.w_str) is W_BytesObject
+ assert space._get_interplevel_cls(space.w_bytes) is W_BytesObject
assert space._get_interplevel_cls(space.w_int) is W_IntObject
class X(W_BytesObject):
def __init__(self):
@@ -51,7 +51,7 @@
typedef = None
- assert space.isinstance_w(X(), space.w_str)
+ assert space.isinstance_w(X(), space.w_bytes)
w_sequenceiterator = space.gettypefor(W_SeqIterObject)
cls = space._get_interplevel_cls(w_sequenceiterator)
@@ -61,7 +61,7 @@
from pypy.objspace.std.bytesobject import W_AbstractBytesObject
space = gettestobjspace(withstrbuf=True)
- cls = space._get_interplevel_cls(space.w_str)
+ cls = space._get_interplevel_cls(space.w_bytes)
assert cls is W_AbstractBytesObject
def test_wrap_various_unsigned_types(self):
diff --git a/pypy/objspace/std/typeobject.py b/pypy/objspace/std/typeobject.py
--- a/pypy/objspace/std/typeobject.py
+++ b/pypy/objspace/std/typeobject.py
@@ -635,7 +635,7 @@
def descr_repr(self, space):
w_mod = self.get_module()
- if w_mod is None or not space.isinstance_w(w_mod, space.w_str):
+ if w_mod is None or not space.isinstance_w(w_mod, space.w_text):
mod = None
else:
mod = space.text_w(w_mod)
@@ -691,7 +691,7 @@
def _check_new_args(space, w_name, w_bases, w_dict):
if w_bases is None or w_dict is None:
raise oefmt(space.w_TypeError, "type() takes 1 or 3 arguments")
- if not space.isinstance_w(w_name, space.w_str):
+ if not space.isinstance_w(w_name, space.w_text):
raise oefmt(space.w_TypeError,
"type() argument 1 must be string, not %T", w_name)
if not space.isinstance_w(w_bases, space.w_tuple):
@@ -775,7 +775,7 @@
w_type = _check(space, w_type)
if not w_type.is_heaptype():
raise oefmt(space.w_TypeError, "can't set %N.__name__", w_type)
- if not space.isinstance_w(w_value, space.w_str):
+ if not space.isinstance_w(w_value, space.w_text):
raise oefmt(space.w_TypeError,
"can only assign string to %N.__name__, not '%T'",
w_type, w_value)
@@ -1049,7 +1049,7 @@
wantdict = False
wantweakref = False
w_slots = dict_w['__slots__']
- if (space.isinstance_w(w_slots, space.w_str) or
+ if (space.isinstance_w(w_slots, space.w_bytes) or
space.isinstance_w(w_slots, space.w_unicode)):
slot_names_w = [w_slots]
else:
diff --git a/pypy/objspace/std/unicodeobject.py
b/pypy/objspace/std/unicodeobject.py
--- a/pypy/objspace/std/unicodeobject.py
+++ b/pypy/objspace/std/unicodeobject.py
@@ -129,7 +129,7 @@
def _op_val(space, w_other, strict=None):
if isinstance(w_other, W_UnicodeObject):
return w_other._value
- if space.isinstance_w(w_other, space.w_str):
+ if space.isinstance_w(w_other, space.w_bytes):
return unicode_from_string(space, w_other)._value
if strict:
raise oefmt(space.w_TypeError,
@@ -374,7 +374,7 @@
return space.is_w(space.type(w_obj), space.w_unicode)
def _join_check_item(self, space, w_obj):
- if (space.isinstance_w(w_obj, space.w_str) or
+ if (space.isinstance_w(w_obj, space.w_bytes) or
space.isinstance_w(w_obj, space.w_unicode)):
return 0
return 1
@@ -490,7 +490,7 @@
w_errors = space.newtext(errors)
w_restuple = space.call_function(w_encoder, w_object, w_errors)
w_retval = space.getitem(w_restuple, space.newint(0))
- if not space.isinstance_w(w_retval, space.w_str):
+ if not space.isinstance_w(w_retval, space.w_bytes):
raise oefmt(space.w_TypeError,
"encoder did not return an string object (type '%T')",
w_retval)
@@ -545,7 +545,7 @@
def unicode_from_object(space, w_obj):
if space.is_w(space.type(w_obj), space.w_unicode):
return w_obj
- elif space.is_w(space.type(w_obj), space.w_str):
+ elif space.is_w(space.type(w_obj), space.w_bytes):
w_res = w_obj
else:
w_unicode_method = space.lookup(w_obj, "__unicode__")
@@ -564,17 +564,17 @@
return unicode_from_encoded_object(space, w_res, None, "strict")
-def unicode_from_string(space, w_str):
+def unicode_from_string(space, w_bytes):
# this is a performance and bootstrapping hack
encoding = getdefaultencoding(space)
if encoding != 'ascii':
- return unicode_from_encoded_object(space, w_str, encoding, "strict")
- s = space.bytes_w(w_str)
+ return unicode_from_encoded_object(space, w_bytes, encoding, "strict")
+ s = space.bytes_w(w_bytes)
try:
return W_UnicodeObject(s.decode("ascii"))
except UnicodeDecodeError:
# raising UnicodeDecodeError is messy, "please crash for me"
- return unicode_from_encoded_object(space, w_str, "ascii", "strict")
+ return unicode_from_encoded_object(space, w_bytes, "ascii", "strict")
class UnicodeDocstrings:
diff --git a/pypy/objspace/std/util.py b/pypy/objspace/std/util.py
--- a/pypy/objspace/std/util.py
+++ b/pypy/objspace/std/util.py
@@ -54,5 +54,5 @@
if isinstance(e, InvalidBaseError):
raise OperationError(space.w_ValueError, space.newtext(e.msg))
else:
- raise oefmt(space.w_ValueError, '%s: %s',
- e.msg, space.str_w(space.repr(w_source)))
+ raise oefmt(space.w_ValueError, '%s: %R',
+ e.msg, w_source)
diff --git a/pypy/tool/pytest/appsupport.py b/pypy/tool/pytest/appsupport.py
--- a/pypy/tool/pytest/appsupport.py
+++ b/pypy/tool/pytest/appsupport.py
@@ -230,7 +230,7 @@
def pypyraises(space, w_ExpectedException, w_expr, __args__):
"""A built-in function providing the equivalent of py.test.raises()."""
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit