def __init__(self, iter=()): #{{{ if self.__class__ == BaseMappingSet: raise NotImplementedError("BaseMappingSet is an abstract class") elif not isiterable(iter): raise TypeError("%s object is not iterable" %iter.__class__.__name__) mkval = self._mkvalfunc() mkkey = self._mkkeyfunc() self._dict = dict((mkkey(None, k, iter), mkval(None, k, iter)) for k in iter)
def apply(self, chains, funcname=None): #{{{ if not isiterable(chains): raise TypeError("Argument is not iterable") init = self for filter in chains: comp = filter, (), {} comp, i = list(comp), 0 if funcname: comp[i], i = funcname, i+1 for el in filter: comp[i], i = el, i+1 else: if not isinstance(filter, basestring): flen = len(filter) if not flen: raise TypeError("Function name expected in chain: none found") for el in filter: comp[i], i = el, i+1 fname, args, kw = comp init = getattr(init, fname)(*args, **kw) return init
def __init__(self, iter=(), **opts): #{{{ if self.__class__ == BaseMappingSetType: raise NotImplementedError("BaseMappingSetType is an abstract class") elif not isiterable(iter): raise TypeError("%s object is not iterable" %iter.__class__.__name__)