def descr_rpartition(self, space, w_sub): from pypy.objspace.std.bytearrayobject import W_BytearrayObject value = self._val(space) if self._use_rstr_ops(space, w_sub): sub = self._op_val(space, w_sub) sublen = len(sub) if sublen == 0: raise oefmt(space.w_ValueError, "empty separator") pos = value.rfind(sub) else: sub = _get_buffer(space, w_sub) sublen = sub.getlength() if sublen == 0: raise oefmt(space.w_ValueError, "empty separator") pos = rfind(value, sub, 0, len(value)) if pos != -1 and isinstance(self, W_BytearrayObject): w_sub = self._new_from_buffer(sub) if pos == -1: if isinstance(self, W_BytearrayObject): self = self._new(value) return space.newtuple([self._empty(), self._empty(), self]) else: return space.newtuple([ self._sliced(space, value, 0, pos, self), w_sub, self._sliced(space, value, pos + sublen, len(value), self) ])
def descr_rpartition(self, space, w_sub): from pypy.objspace.std.bytearrayobject import W_BytearrayObject value = self._val(space) if self._use_rstr_ops(space, w_sub): sub = self._op_val(space, w_sub) sublen = len(sub) if sublen == 0: raise oefmt(space.w_ValueError, "empty separator") pos = value.rfind(sub) else: sub = _get_buffer(space, w_sub) sublen = sub.getlength() if sublen == 0: raise oefmt(space.w_ValueError, "empty separator") pos = rfind(value, sub, 0, len(value)) if pos != -1 and isinstance(self, W_BytearrayObject): w_sub = self._new_from_buffer(sub) if pos == -1: if isinstance(self, W_BytearrayObject): self = self._new(value) return space.newtuple([self._empty(), self._empty(), self]) else: return space.newtuple( [self._sliced(space, value, 0, pos, self), w_sub, self._sliced(space, value, pos + sublen, len(value), self)])
def descr_rfind(self, space, w_sub, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end) if self._use_rstr_ops(space, w_sub): res = value.rfind(self._op_val(space, w_sub), start, end) return space.wrap(res) from pypy.objspace.std.bytearrayobject import W_BytearrayObject from pypy.objspace.std.bytesobject import W_BytesObject if isinstance(w_sub, W_BytearrayObject): res = rfind(value, w_sub.data, start, end) elif isinstance(w_sub, W_BytesObject): res = rfind(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = rfind(value, buffer, start, end) return space.wrap(res)
def descr_rindex(self, space, w_sub, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end) from pypy.objspace.std.bytearrayobject import W_BytearrayObject from pypy.objspace.std.bytesobject import W_BytesObject if self._use_rstr_ops(space, w_sub): res = value.rfind(self._op_val(space, w_sub), start, end) elif isinstance(w_sub, W_BytearrayObject): res = rfind(value, w_sub.data, start, end) elif isinstance(w_sub, W_BytesObject): res = rfind(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = rfind(value, buffer, start, end) if res < 0: raise oefmt(space.w_ValueError, "substring not found in string.rindex") return space.newint(res)
def descr_rfind(self, space, w_sub, w_start=None, w_end=None): value, start, end, ofs = self._convert_idx_params(space, w_start, w_end) if self._use_rstr_ops(space, w_sub): res = value.rfind(self._op_val(space, w_sub), start, end) return space.newint(res) from pypy.objspace.std.bytearrayobject import W_BytearrayObject from pypy.objspace.std.bytesobject import W_BytesObject if isinstance(w_sub, W_BytearrayObject): res = rfind(value, w_sub.getdata(), start, end) elif isinstance(w_sub, W_BytesObject): res = rfind(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = rfind(value, buffer, start, end) if ofs is not None and res >= 0: res -= ofs return space.newint(res)
def descr_rfind(self, space, w_sub, w_start=None, w_end=None): value, start, end, ofs = self._convert_idx_params(space, w_start, w_end) sub = self._op_val(space, w_sub, allow_char=True) if self._use_rstr_ops(space, w_sub): res = value.rfind(sub, start, end) else: res = rfind(value, sub, start, end) if ofs is not None and res >= 0: res -= ofs return space.newint(res)
def descr_rindex(self, space, w_sub, w_start=None, w_end=None): value, start, end, ofs = self._convert_idx_params(space, w_start, w_end) from pypy.objspace.std.bytearrayobject import W_BytearrayObject from pypy.objspace.std.bytesobject import W_BytesObject if self._use_rstr_ops(space, w_sub): res = value.rfind(self._op_val(space, w_sub), start, end) elif isinstance(w_sub, W_BytearrayObject): res = rfind(value, w_sub.getdata(), start, end) elif isinstance(w_sub, W_BytesObject): res = rfind(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = rfind(value, buffer, start, end) if res < 0: raise oefmt(space.w_ValueError, "sub-palabra no encontrada en palabra.dindice") if ofs is not None: res -= ofs return space.newint(res)
def descr_rindex(self, space, w_sub, w_start=None, w_end=None): value, start, end, ofs = self._convert_idx_params(space, w_start, w_end) sub = self._op_val(space, w_sub, allow_char=True) if self._use_rstr_ops(space, w_sub): res = value.rfind(sub, start, end) else: res = rfind(value, sub, start, end) if res < 0: raise oefmt(space.w_ValueError, "substring not found in " + self._KIND2 + ".rindex") if ofs is not None: res -= ofs return space.newint(res)
def fn(): res = True res = res and find('a//b//c//d', StringBuffer('//'), 0, 10) != -1 res = res and rfind('a//b//c//d', StringBuffer('//'), 0, 10) != -1 res = res and count('a//b//c//d', StringBuffer('//'), 0, 10) != 0 return res
def fn(): res = True res = res and find("a//b//c//d", StringBuffer("//"), 0, 10) != -1 res = res and rfind("a//b//c//d", StringBuffer("//"), 0, 10) != -1 res = res and count("a//b//c//d", StringBuffer("//"), 0, 10) != 0 return res