Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: space-newtext Changeset: r88792:00b54f1e2516 Date: 2016-12-01 15:05 +0100 http://bitbucket.org/pypy/pypy/changeset/00b54f1e2516/
Log: str_w in micronumpy diff --git a/pypy/interpreter/error.py b/pypy/interpreter/error.py --- a/pypy/interpreter/error.py +++ b/pypy/interpreter/error.py @@ -403,7 +403,7 @@ Supports the standard %s and %d formats, plus the following: %N - The result of w_arg.getname(space) - %R - The result of space.str_w(space.repr(w_arg)) + %R - The result of space.text_w(space.repr(w_arg)) %T - The result of space.type(w_arg).name """ diff --git a/pypy/module/micronumpy/boxes.py b/pypy/module/micronumpy/boxes.py --- a/pypy/module/micronumpy/boxes.py +++ b/pypy/module/micronumpy/boxes.py @@ -556,7 +556,7 @@ class W_VoidBox(W_FlexibleBox): def descr_getitem(self, space, w_item): if space.isinstance_w(w_item, space.w_basestring): - item = space.str_w(w_item) + item = space.text_w(w_item) elif space.isinstance_w(w_item, space.w_int): indx = space.int_w(w_item) try: @@ -587,7 +587,7 @@ def descr_setitem(self, space, w_item, w_value): if space.isinstance_w(w_item, space.w_basestring): - item = space.str_w(w_item) + item = space.text_w(w_item) elif space.isinstance_w(w_item, space.w_int): indx = space.int_w(w_item) try: @@ -622,7 +622,7 @@ class W_StringBox(W_CharacterBox): def descr__new__string_box(space, w_subtype, w_arg): from pypy.module.micronumpy.descriptor import new_string_dtype - arg = space.str_w(space.str(w_arg)) + arg = space.text_w(space.str(w_arg)) arr = VoidBoxStorage(len(arg), new_string_dtype(space, len(arg))) for i in range(len(arg)): arr.storage[i] = arg[i] 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 @@ -76,6 +76,7 @@ w_tuple = W_TypeObject('tuple') w_slice = W_TypeObject("slice") w_str = W_TypeObject("str") + w_bytes = w_str w_unicode = W_TypeObject("unicode") w_complex = W_TypeObject("complex") w_dict = W_TypeObject("dict") 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 @@ -25,8 +25,8 @@ def clipmode_converter(space, w_mode): if space.is_none(w_mode): return NPY.RAISE - if space.isinstance_w(w_mode, space.w_str): - mode = space.str_w(w_mode) + if space.isinstance_w(w_mode, space.w_text): + mode = space.text_w(w_mode) if mode.startswith('C') or mode.startswith('c'): return NPY.CLIP if mode.startswith('W') or mode.startswith('w'): @@ -42,7 +42,7 @@ def searchside_converter(space, w_obj): try: - s = space.str_w(w_obj) + s = space.text_w(w_obj) except OperationError: s = None if not s: @@ -66,7 +66,7 @@ else: return NPY.CORDER else: - order = space.str_w(w_order) + order = space.text_w(w_order) if order.startswith('C') or order.startswith('c'): return NPY.CORDER elif order.startswith('F') or order.startswith('f'): 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 @@ -20,11 +20,11 @@ "argument 1 must be numpy.dtype, not %T", w_dtype) if w_dtype.elsize == 0: raise oefmt(space.w_TypeError, "Empty data-type") - if not space.isinstance_w(w_state, space.w_str): + if not space.isinstance_w(w_state, space.w_bytes): # py3 accepts unicode here too raise oefmt(space.w_TypeError, "initializing object must be a string") if space.len_w(w_state) != w_dtype.elsize: raise oefmt(space.w_ValueError, "initialization string is too small") - state = rffi.str2charp(space.str_w(w_state)) + state = rffi.str2charp(space.text_w(w_state)) box = w_dtype.itemtype.box_raw_data(state) lltype.free(state, flavor="raw") return box @@ -212,7 +212,7 @@ if not isinstance(w_object, W_NDimArray): w_array = try_array_method(space, w_object, w_dtype) if w_array is None: - if ( not space.isinstance_w(w_object, space.w_str) and + if ( not space.isinstance_w(w_object, space.w_bytes) and not space.isinstance_w(w_object, space.w_unicode) and not isinstance(w_object, W_GenericBox)): # use buffer interface @@ -323,7 +323,7 @@ return _find_shape_and_elems(space, w_iterable, is_rec_type) def is_scalar_like(space, w_obj, dtype): - isstr = space.isinstance_w(w_obj, space.w_str) + isstr = space.isinstance_w(w_obj, space.w_bytes) if not support.issequence_w(space, w_obj) or isstr: if dtype is None or dtype.char != NPY.CHARLTR: return True 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 @@ -40,7 +40,7 @@ return out def byteorder_w(space, w_str): - order = space.str_w(w_str) + order = space.text_w(w_str) if len(order) != 1: raise oefmt(space.w_ValueError, "endian is not 1-char string in Numpy dtype unpickling") @@ -275,13 +275,13 @@ for name, title in self.names: offset, subdtype = self.fields[name] if subdtype.is_record(): - substr = [space.str_w(space.str(subdtype.descr_get_descr( + substr = [space.text_w(space.str(subdtype.descr_get_descr( space, style='descr_subdtype'))), ","] elif subdtype.subdtype is not None: - substr = ["(", space.str_w(space.str( + substr = ["(", space.text_w(space.str( subdtype.subdtype.descr_get_descr(space, style='descr_subdtype'))), ', ', - space.str_w(space.repr(space.newtuple([space.newint(s) for s in subdtype.shape]))), + space.text_w(space.repr(space.newtuple([space.newint(s) for s in subdtype.shape]))), "),"] else: substr = ["'", subdtype.get_str(ignore=''), "',"] @@ -351,7 +351,7 @@ subdescr.append(subdtype.descr_get_shape(space)) descr.append(space.newtuple(subdescr[:])) if self.alignment >= 0 and not style.endswith('subdtype'): - return space.newtext(space.str_w(space.repr(space.newlist(descr))) + ', align=True') + return space.newtext(space.text_w(space.repr(space.newlist(descr))) + ', align=True') return space.newlist(descr) def descr_get_hasobject(self, space): @@ -418,7 +418,7 @@ raise oefmt(space.w_ValueError, "item #%d of names is of type %T and not string", len(names), w_name) - names.append((space.str_w(w_name), title)) + names.append((space.text_w(w_name), title)) fields = {} for i in range(len(self.names)): if names[i][0] in fields: @@ -523,7 +523,7 @@ def descr_str(self, space): if self.fields: r = self.descr_get_descr(space, style='str') - name = space.str_w(space.str(self.w_box_type)) + name = space.text_w(space.str(self.w_box_type)) if name != "<type 'numpy.void'>": boxname = space.str(self.w_box_type) r = space.newtuple([self.w_box_type, r]) @@ -543,7 +543,7 @@ return space.newtext("dtype('S1')") if self.fields: r = self.descr_get_descr(space, style='repr') - name = space.str_w(space.str(self.w_box_type)) + name = space.text_w(space.str(self.w_box_type)) if name != "<type 'numpy.void'>": r = space.newtuple([self.w_box_type, r]) elif self.subdtype is not None: @@ -562,15 +562,15 @@ else: r = self.descr_get_name(space, quote=True) if space.isinstance_w(r, space.w_str): - return space.newtext("dtype(%s)" % space.str_w(r)) - return space.newtext("dtype(%s)" % space.str_w(space.repr(r))) + return space.newtext("dtype(%s)" % space.text_w(r)) + return space.newtext("dtype(%s)" % space.text_w(space.repr(r))) def descr_getitem(self, space, w_item): if not self.fields: raise oefmt(space.w_KeyError, "There are no fields in dtype %s.", self.get_name()) if space.isinstance_w(w_item, space.w_basestring): - item = space.str_w(w_item) + item = space.text_w(w_item) elif space.isinstance_w(w_item, space.w_int): indx = space.int_w(w_item) try: @@ -749,15 +749,15 @@ w_flddesc, maxalign, w_shape=w_shape) if space.isinstance_w(w_fldname, space.w_tuple): fldlist = space.listview(w_fldname) - fldnames[i] = space.str_w(fldlist[0]) + fldnames[i] = space.text_w(fldlist[0]) if space.is_w(fldlist[1], space.w_None): titles[i] = None else: - titles[i] = space.str_w(fldlist[1]) + 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): - fldnames[i] = space.str_w(w_fldname) + fldnames[i] = space.text_w(w_fldname) else: raise oefmt(space.w_TypeError, "data type not understood") if fldnames[i] == '': @@ -851,7 +851,7 @@ # Only for testing, a shortened version of the real _usefields allfields = [] for fname_w in space.unpackiterable(w_dict): - obj = _get_list_or_none(space, w_dict, space.str_w(fname_w)) + obj = _get_list_or_none(space, w_dict, space.text_w(fname_w)) num = space.int_w(obj[1]) if align: alignment = 0 diff --git a/pypy/module/micronumpy/flagsobj.py b/pypy/module/micronumpy/flagsobj.py --- a/pypy/module/micronumpy/flagsobj.py +++ b/pypy/module/micronumpy/flagsobj.py @@ -61,7 +61,7 @@ return space.newint(self.flags) def descr_getitem(self, space, w_item): - key = space.str_w(w_item) + key = space.text_w(w_item) if key == "C" or key == "CONTIGUOUS" or key == "C_CONTIGUOUS": return self.descr_c_contiguous(space) if key == "F" or key == "FORTRAN" or key == "F_CONTIGUOUS": diff --git a/pypy/module/micronumpy/ndarray.py b/pypy/module/micronumpy/ndarray.py --- a/pypy/module/micronumpy/ndarray.py +++ b/pypy/module/micronumpy/ndarray.py @@ -250,8 +250,8 @@ def descr_getitem(self, space, w_idx): if self.get_dtype().is_record(): - if space.isinstance_w(w_idx, space.w_str): - idx = space.str_w(w_idx) + if space.isinstance_w(w_idx, space.w_text): + idx = space.text_w(w_idx) return self.getfield(space, idx) if space.is_w(w_idx, space.w_Ellipsis): return self.descr_view(space, space.type(self)) @@ -287,8 +287,8 @@ def descr_setitem(self, space, w_idx, w_value): if self.get_dtype().is_record(): - if space.isinstance_w(w_idx, space.w_str): - idx = space.str_w(w_idx) + if space.isinstance_w(w_idx, space.w_text): + idx = space.text_w(w_idx) view = self.getfield(space, idx) w_value = convert_to_array(space, w_value) view.implementation.setslice(space, w_value) @@ -735,10 +735,9 @@ # XXX Should not happen raise oefmt(space.w_ValueError, "new dtype has elsize of 0") if not can_cast_array(space, self, new_dtype, casting): - raise oefmt(space.w_TypeError, "Cannot cast array from %s to %s" - "according to the rule %s", - space.str_w(self.get_dtype().descr_repr(space)), - space.str_w(new_dtype.descr_repr(space)), casting) + raise oefmt(space.w_TypeError, "Cannot cast array from %R to %R" + "according to the rule %s", self.get_dtype(), + new_dtype, casting) order = order_converter(space, space.newtext(order), self.get_order()) if (not copy and new_dtype == self.get_dtype() and (order in (NPY.KEEPORDER, NPY.ANYORDER) or order == self.get_order()) diff --git a/pypy/module/micronumpy/nditer.py b/pypy/module/micronumpy/nditer.py --- a/pypy/module/micronumpy/nditer.py +++ b/pypy/module/micronumpy/nditer.py @@ -53,7 +53,7 @@ def parse_op_flag(space, lst): op_flag = OpFlag() for w_item in lst: - item = space.str_w(w_item) + item = space.text_w(w_item) if item == 'readonly': op_flag.rw = 'r' elif item == 'readwrite': @@ -102,12 +102,12 @@ 'Iter global flags must be a list or tuple of strings') lst = space.listview(w_flags) for w_item in lst: - if not space.isinstance_w(w_item, space.w_str) and not \ + if not space.isinstance_w(w_item, space.w_bytes) and not \ space.isinstance_w(w_item, space.w_unicode): raise oefmt(space.w_TypeError, "expected string or Unicode object, %T found", w_item) - item = space.str_w(w_item) + item = space.text_w(w_item) if item == 'external_loop': nditer.external_loop = True elif item == 'buffered': @@ -365,7 +365,7 @@ self.op_axes = [] self.allow_backward = allow_backward if not space.is_w(w_casting, space.w_None): - self.casting = space.str_w(w_casting) + self.casting = space.text_w(w_casting) else: self.casting = 'safe' # convert w_seq operands to a list of W_NDimArray @@ -483,11 +483,9 @@ if not can_cast_array( space, self.seq[i], self_d, self.casting): raise oefmt(space.w_TypeError, "Iterator operand %d" - " dtype could not be cast from %s to %s" - " according to the rule '%s'", i, - space.str_w(seq_d.descr_repr(space)), - space.str_w(self_d.descr_repr(space)), - self.casting) + " dtype could not be cast from %R to %R" + " according to the rule '%s'", + i, seq_d, self_d, self.casting) order = support.get_order_as_CF(impl.order, self.order) new_impl = impl.astype(space, self_d, order).copy(space) self.seq[i] = W_NDimArray(new_impl) @@ -501,11 +499,9 @@ space, self_d, seq_d, self.casting): raise oefmt(space.w_TypeError, "Iterator" " requested dtype could not be cast from " - " %s to %s, the operand %d dtype, accord" - "ing to the rule '%s'", - space.str_w(self_d.descr_repr(space)), - space.str_w(seq_d.descr_repr(space)), - i, self.casting) + " %R to %R, the operand %d dtype, accord" + "ing to the rule '%s'", + self_d, seq_d, i, self.casting) elif self.buffered and not (self.external_loop and len(self.seq)<2): for i in range(len(self.seq)): if i not in outargs: diff --git a/pypy/module/micronumpy/support.py b/pypy/module/micronumpy/support.py --- a/pypy/module/micronumpy/support.py +++ b/pypy/module/micronumpy/support.py @@ -205,7 +205,7 @@ if space.is_none(w_docstring): doc = None else: - doc = space.str_w(w_docstring) + doc = space.text_w(w_docstring) w_obj.doc = doc return app_set_docstring(space, w_obj, w_docstring) diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py --- a/pypy/module/micronumpy/types.py +++ b/pypy/module/micronumpy/types.py @@ -1929,12 +1929,12 @@ def str_format(self, box, add_quotes=True): if not add_quotes: - as_str = self.space.str_w(self.space.repr(self.unbox(box))) + as_str = self.space.text_w(self.space.repr(self.unbox(box))) as_strl = len(as_str) - 1 if as_strl>1 and as_str[0] == "'" and as_str[as_strl] == "'": as_str = as_str[1:as_strl] return as_str - return self.space.str_w(self.space.repr(self.unbox(box))) + return self.space.text_w(self.space.repr(self.unbox(box))) def runpack_str(self, space, s, native): raise oefmt(space.w_NotImplementedError, @@ -2165,7 +2165,7 @@ return w_item if w_item is None: w_item = space.newbytes('') - arg = space.str_w(space.str(w_item)) + arg = space.text_w(space.str(w_item)) arr = VoidBoxStorage(dtype.elsize, dtype) with arr as storage: j = min(len(arg), dtype.elsize) @@ -2314,7 +2314,7 @@ assert isinstance(item, boxes.W_UnicodeBox) if add_quotes: w_unicode = self.to_builtin_type(self.space, item) - return self.space.str_w(self.space.repr(w_unicode)) + return self.space.text_w(self.space.repr(w_unicode)) else: # Same as W_UnicodeBox.descr_repr() but without quotes and prefix from rpython.rlib.runicode import unicode_encode_unicode_escape diff --git a/pypy/module/micronumpy/ufuncs.py b/pypy/module/micronumpy/ufuncs.py --- a/pypy/module/micronumpy/ufuncs.py +++ b/pypy/module/micronumpy/ufuncs.py @@ -153,7 +153,7 @@ if w_casting is None: casting = 'unsafe' else: - casting = space.str_w(w_casting) + casting = space.text_w(w_casting) retval = self.call(space, args_w, sig, casting, extobj) keepalive_until_here(args_w) return retval @@ -983,7 +983,7 @@ if sig: raise oefmt(space.w_RuntimeError, "cannot specify both 'sig' and 'dtype'") - sig = space.str_w(kwargs_w[kw]) + sig = space.text_w(kwargs_w[kw]) parsed_kw.append(kw) elif kw.startswith('where'): raise oefmt(space.w_NotImplementedError, @@ -1504,7 +1504,7 @@ elif (space.isinstance_w(w_dtypes, space.w_tuple) or space.isinstance_w(w_dtypes, space.w_list)): _dtypes = space.listview(w_dtypes) - if space.isinstance_w(_dtypes[0], space.w_str) and space.str_w(_dtypes[0]) == 'match': + if space.isinstance_w(_dtypes[0], space.w_text) and space.text_w(_dtypes[0]) == 'match': dtypes = [] match_dtypes = True else: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit