return W_UnicodeObject(uni[start:stop]) def mul__Unicode_ANY(space, w_uni, w_times): try: times = space.getindex_w(w_times, space.w_OverflowError) except OperationError, e: if e.match(space, space.w_TypeError): raise FailedToImplement raise if times <= 0: return W_UnicodeObject.EMPTY input = w_uni._value if len(input) == 1: result = input[0] * times else: result = string_repeat(input, times) return W_UnicodeObject(result) def mul__ANY_Unicode(space, w_times, w_uni): return mul__Unicode_ANY(space, w_uni, w_times) def _isspace(uchar): return unicodedb.isspace(ord(uchar)) def make_generic(funcname): def func(space, w_self): v = w_self._value if len(v) == 0: return space.w_False for idx in range(len(v)): if not getattr(unicodedb, funcname)(ord(v[idx])):
return sliced(space, s, start, stop, w_str) def mul_string_times(space, w_str, w_times): try: mul = space.getindex_w(w_times, space.w_OverflowError) except OperationError, e: if e.match(space, space.w_TypeError): raise FailedToImplement raise if mul <= 0: return W_StringObject.EMPTY input = w_str._value if len(input) == 1: s = input[0] * mul else: s = string_repeat(input, mul) # xxx support again space.config.objspace.std.withstrjoin? return W_StringObject(s) def mul__String_ANY(space, w_str, w_times): return mul_string_times(space, w_str, w_times) def mul__ANY_String(space, w_times, w_str): return mul_string_times(space, w_str, w_times) def add__String_String(space, w_left, w_right): right = w_right._value left = w_left._value return joined2(space, left, right) def len__String(space, w_str):
def mul_string_times(space, w_str, w_times): try: mul = space.getindex_w(w_times, space.w_OverflowError) except OperationError, e: if e.match(space, space.w_TypeError): raise FailedToImplement raise if mul <= 0: return W_StringObject.EMPTY input = w_str._value if len(input) == 1: s = input[0] * mul else: s = string_repeat(input, mul) # xxx support again space.config.objspace.std.withstrjoin? return W_StringObject(s) def mul__String_ANY(space, w_str, w_times): return mul_string_times(space, w_str, w_times) def mul__ANY_String(space, w_times, w_str): return mul_string_times(space, w_str, w_times) def add__String_String(space, w_left, w_right): right = w_right._value left = w_left._value