Example #1
0
 def __mul__(self, k):
     if not isinstance(k, int):
         raise TypeError("can't multiply sequence by non-int of type '%s'"
                         % str(type(int)))
     rv = self.__class__()
     rv._key = self._key
     rv._blist = sum((blist([x])*k for x in self._blist), blist())
     return rv
Example #2
0
 def __init__(self, seq=None):
     if isinstance(seq, btuple):
         self._blist = seq._blist
     elif seq is not None:
         self._blist = blist(seq)
     else:
         self._blist = blist()
     self._hash = -1
Example #3
0
 def __init__(self, seq=None):
     if isinstance(seq, btuple):
         self._blist = seq._blist
     elif seq is not None:
         self._blist = blist(seq)
     else:
         self._blist = blist()
     self._hash = -1
Example #4
0
 def __init__(self, iterable=(), key=None):
     self._key = key
     if key is not None and not hasattr(key, '__call__'):
         raise TypeError("'%s' object is not callable" % str(type(key)))
     if ((isinstance(iterable,type(self))
          or isinstance(self,type(iterable)))
         and iterable._key is key):
         self._blist = blist(iterable._blist)
     else:
         self._blist = blist()
         for v in iterable:
             self.add(v)
Example #5
0
 def _btuple_or_tuple(self, other, f):
     if isinstance(other, btuple):
         rv = f(self._blist, other._blist)
     elif isinstance(other, tuple):
         rv = f(self._blist, blist(other))
     else:
         return NotImplemented
     if isinstance(rv, blist):
         rv = btuple(rv)
     return rv        
Example #6
0
 def _btuple_or_tuple(self, other, f):
     if isinstance(other, btuple):
         rv = f(self._blist, other._blist)
     elif isinstance(other, tuple):
         rv = f(self._blist, blist(other))
     else:
         return NotImplemented
     if isinstance(rv, blist):
         rv = btuple(rv)
     return rv
Example #7
0
 def values(self):
     return blist(self[key] for key in self)
Example #8
0
 def items(self):
     return blist((key, self[key]) for key in self)
 def items(self):
     return blist((key, self[key]) for key in self)
 def values(self):
     return blist(self[key] for key in self)
Example #11
0
 def __init__(self, seq=(), key=None):
     self._key = key
     self._blist = blist()
     for v in seq:
         self.add(v)