def getitem__Rope_Slice(space, w_str, w_slice): node = w_str._node length = node.length() start, stop, step, sl = w_slice.indices4(space, length) if sl == 0: return W_RopeObject.EMPTY return W_RopeObject(rope.getslice(node, start, stop, step, sl))
def getitem__RopeUnicode_Slice(space, w_uni, w_slice): node = w_uni._node length = node.length() start, stop, step, sl = w_slice.indices4(space, length) if sl == 0: return W_RopeUnicodeObject.EMPTY return W_RopeUnicodeObject(rope.getslice(node, start, stop, step, sl))
def getslice__Rope_ANY_ANY(space, w_str, w_start, w_stop): node = w_str._node length = node.length() start, stop = normalize_simple_slice(space, length, w_start, w_stop) sl = stop - start if sl == 0: return W_RopeObject.EMPTY return W_RopeObject(rope.getslice(node, start, stop, 1, sl))
def getslice__RopeUnicode_ANY_ANY(space, w_uni, w_start, w_stop): node = w_uni._node length = node.length() start, stop = normalize_simple_slice(space, length, w_start, w_stop) sl = stop - start if sl == 0: return W_RopeUnicodeObject.EMPTY return W_RopeUnicodeObject(rope.getslice(node, start, stop, 1, sl))