home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2004 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.1 KB  |  149 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __all__ = [
  5.     'DictMixin']
  6.  
  7. try:
  8.     from UserDict import DictMixin
  9. except ImportError:
  10.     
  11.     class DictMixin:
  12.         
  13.         def __iter__(self):
  14.             for k in self.keys():
  15.                 yield k
  16.             
  17.  
  18.         
  19.         def has_key(self, key):
  20.             
  21.             try:
  22.                 value = self[key]
  23.             except KeyError:
  24.                 return False
  25.  
  26.             return True
  27.  
  28.         
  29.         def __contains__(self, key):
  30.             return self.has_key(key)
  31.  
  32.         
  33.         def iteritems(self):
  34.             for k in self:
  35.                 yield (k, self[k])
  36.             
  37.  
  38.         
  39.         def iterkeys(self):
  40.             return self.__iter__()
  41.  
  42.         
  43.         def itervalues(self):
  44.             for _, v in self.iteritems():
  45.                 yield v
  46.             
  47.  
  48.         
  49.         def values(self):
  50.             return [ v for _, v in self.iteritems() ]
  51.  
  52.         
  53.         def items(self):
  54.             return list(self.iteritems())
  55.  
  56.         
  57.         def clear(self):
  58.             for key in self.keys():
  59.                 del self[key]
  60.             
  61.  
  62.         
  63.         def setdefault(self, key, default = None):
  64.             
  65.             try:
  66.                 return self[key]
  67.             except KeyError:
  68.                 self[key] = default
  69.  
  70.             return default
  71.  
  72.         
  73.         def pop(self, key, *args):
  74.             if len(args) > 1:
  75.                 raise TypeError('pop expected at most 2 arguments, got ' + repr(1 + len(args)))
  76.             len(args) > 1
  77.             
  78.             try:
  79.                 value = self[key]
  80.             except KeyError:
  81.                 if args:
  82.                     return args[0]
  83.                 raise 
  84.             except:
  85.                 args
  86.  
  87.             del self[key]
  88.             return value
  89.  
  90.         
  91.         def popitem(self):
  92.             
  93.             try:
  94.                 (k, v) = self.iteritems().next()
  95.             except StopIteration:
  96.                 raise KeyError('container is empty')
  97.  
  98.             del self[k]
  99.             return (k, v)
  100.  
  101.         
  102.         def update(self, other = None, **kwargs):
  103.             if other is None:
  104.                 pass
  105.             elif hasattr(other, 'iteritems'):
  106.                 for k, v in other.iteritems():
  107.                     self[k] = v
  108.                 
  109.             elif hasattr(other, 'keys'):
  110.                 for k in other.keys():
  111.                     self[k] = other[k]
  112.                 
  113.             else:
  114.                 for k, v in other:
  115.                     self[k] = v
  116.                 
  117.             if kwargs:
  118.                 self.update(kwargs)
  119.             
  120.  
  121.         
  122.         def get(self, key, default = None):
  123.             
  124.             try:
  125.                 return self[key]
  126.             except KeyError:
  127.                 return default
  128.  
  129.  
  130.         
  131.         def __repr__(self):
  132.             return repr(dict(self.iteritems()))
  133.  
  134.         
  135.         def __cmp__(self, other):
  136.             if other is None:
  137.                 return 1
  138.             if isinstance(other, DictMixin):
  139.                 other = dict(other.iteritems())
  140.             
  141.             return cmp(dict(self.iteritems()), other)
  142.  
  143.         
  144.         def __len__(self):
  145.             return len(self.keys())
  146.  
  147.  
  148.  
  149.