예제 #1
0
 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)
예제 #2
0
 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
예제 #3
0
 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__)