def descr_contains(self, space, w_sub): value = self._val(space) if self._use_rstr_ops(space, w_sub): other = self._op_val(space, w_sub) return space.newbool(value.find(other) >= 0) from pypy.objspace.std.bytesobject import W_BytesObject if isinstance(w_sub, W_BytesObject): other = self._op_val(space, w_sub) res = find(value, other, 0, len(value)) else: buffer = _get_buffer(space, w_sub) res = find(value, buffer, 0, len(value)) return space.newbool(res >= 0)
def descr_contains(self, space, w_sub): value, start, end, _ = self._convert_idx_params(space, None, None) if self._use_rstr_ops(space, w_sub): other = self._op_val(space, w_sub) return space.newbool(value.find(other, start, end) >= 0) from pypy.objspace.std.bytesobject import W_BytesObject if isinstance(w_sub, W_BytesObject): other = self._op_val(space, w_sub) res = find(value, other, start, end) else: buffer = _get_buffer(space, w_sub) res = find(value, buffer, start, end) return space.newbool(res >= 0)
def descr_partition(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.find(sub) else: sub = _get_buffer(space, w_sub) sublen = sub.getlength() if sublen == 0: raise oefmt(space.w_ValueError, "empty separator") pos = find(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, self._empty(), self._empty()]) else: return space.newtuple( [self._sliced(space, value, 0, pos, self), w_sub, self._sliced(space, value, pos + sublen, len(value), self)])
def descr_partition(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.find(sub) else: sub = _get_buffer(space, w_sub) sublen = sub.getlength() if sublen == 0: raise oefmt(space.w_ValueError, "empty separator") pos = find(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, self._empty(), self._empty()]) else: return space.newtuple([ self._sliced(space, value, 0, pos, self), w_sub, self._sliced(space, value, pos + sublen, len(value), self) ])
def descr_contains(self, space, w_sub): value, start, end, _ = self._convert_idx_params(space, None, None) other = self._op_val(space, w_sub, allow_char=True) if self._use_rstr_ops(space, w_sub): res = value.find(other, start, end) else: res = find(value, other, start, end) return space.newbool(res >= 0)
def descr_find(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.find(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 = find(value, w_sub.data, start, end) elif isinstance(w_sub, W_BytesObject): res = find(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = find(value, buffer, start, end) return space.wrap(res)
def descr_index(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.find(self._op_val(space, w_sub), start, end) elif isinstance(w_sub, W_BytearrayObject): res = find(value, w_sub.data, start, end) elif isinstance(w_sub, W_BytesObject): res = find(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = find(value, buffer, start, end) if res < 0: raise oefmt(space.w_ValueError, "substring not found in string.index") return space.wrap(res)
def descr_find(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.find(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 = find(value, w_sub.getdata(), start, end) elif isinstance(w_sub, W_BytesObject): res = find(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = find(value, buffer, start, end) if ofs is not None and res >= 0: res -= ofs return space.newint(res)
def descr_find(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.find(sub, start, end) else: res = find(value, sub, start, end) if ofs is not None and res >= 0: res -= ofs return space.newint(res)
def descr_index(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.find(self._op_val(space, w_sub), start, end) elif isinstance(w_sub, W_BytearrayObject): res = find(value, w_sub.getdata(), start, end) elif isinstance(w_sub, W_BytesObject): res = find(value, w_sub._value, start, end) else: buffer = _get_buffer(space, w_sub) res = find(value, buffer, start, end) if res < 0: raise oefmt(space.w_ValueError, "sub-palabra no encontrada en palabra.indice") if ofs is not None: res -= ofs return space.newint(res)
def readline(self): # import pdb; pdb.set_trace() from rpython.rlib.rstring import find start = self.ptr assert start >= 0 pos = find(self.str, "\n", start, len(self.str)) if pos < 0: return self.read() else: pos += 1 stop = self.ptr = pos return self.str[start:stop] return line
def descr_index(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.find(sub, start, end) else: res = find(value, sub, start, end) if res < 0: raise oefmt(space.w_ValueError, "substring not found in " + self._KIND2 + ".index") 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