def extend(self, other): o = [] o_tmp = other if type(o_tmp) not in (list, tuple) and not isinstance(o_tmp, UserList): o_tmp = list(o_tmp) for i in o_tmp: if type(i) is unicode: o.append(i.encode(u'utf-8')) else: o.append(i) MultiPurposeList.extend(self, o)
def __setslice__(self, i, j, other): o = [] o_tmp = other if type(o_tmp) not in (list, tuple) and not isinstance(o_tmp, UserList): o_tmp = list(o_tmp) for item in o_tmp: if type(item) == unicode: o.append(item.encode(u'utf-8')) else: o.append(item) MultiPurposeList.__setslice__(self, i, j, o)
def insert(self, i, item): _i = item if type(_i) is str: _i = item.encode(u'utf-8') MultiPurposeList.insert(self, i, _i)
def append(self, item): i = item if type(item) is str: i = item.encode(u'utf-8') MultiPurposeList.append(self, i)
def __setitem__(self, i, item): _i = item if type(_i) is unicode: _i = item.encode(u'utf-8') MultiPurposeList.__setitem__(self, i, _i)
def __getslice__(self, i, j): return [item.decode(u'utf-8') if type(item) is str else item \ for item in MultiPurposeList.__getslice__(self, i, j)]
def __getitem__(self, i): item = MultiPurposeList.__getitem__(self, i) if type(item) is str: return item.decode(u'utf-8') return item
def __contains__(self, item): i = item if type(i) is unicode: i = item.encode(u'utf-8') return MultiPurposeList.__contains__(self, i)
def __init__(self, vimbuffer, on_change=None): MultiPurposeList.__init__(self, on_change=on_change) # replace data with vimbuffer to make operations change the actual # buffer self.data = vimbuffer
def pop(self, i=-1): return MultiPurposeList.pop(self, i).decode(u'utf-8')
def index(self, item, *args): i = item if type(i) is unicode: i = item.encode(u'utf-8') MultiPurposeList.index(self, i, *args)