def _local_transform(node, transform): l = node.length() res = [u' '] * l iter = rope.ItemIterator(node) for i in range(l): ch = iter.nextint() res[i] = transform(ch) return W_RopeUnicodeObject(rope.rope_from_unicharlist(res))
def unicode_capitalize__RopeUnicode(space, w_self): input = w_self._node length = input.length() if length == 0: return w_self result = [u'\0'] * length iter = rope.ItemIterator(input) result[0] = unichr(unicodedb.toupper(iter.nextint())) for i in range(1, length): result[i] = unichr(unicodedb.tolower(iter.nextint())) return W_RopeUnicodeObject(rope.rope_from_unicharlist(result))
def unicode_title__RopeUnicode(space, w_self): input = w_self._node length = input.length() if length == 0: return w_self result = [u'\0'] * length iter = rope.ItemIterator(input) previous_is_cased = False for i in range(input.length()): unichar = iter.nextint() if previous_is_cased: result[i] = unichr(unicodedb.tolower(unichar)) else: result[i] = unichr(unicodedb.totitle(unichar)) previous_is_cased = unicodedb.iscased(unichar) return W_RopeUnicodeObject(rope.rope_from_unicharlist(result))