home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / lxml / html / _dictmixin.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  3.9 KB  |  149 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  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.             
  77.             
  78.             try:
  79.                 value = self[key]
  80.             except KeyError:
  81.                 if args:
  82.                     return args[0]
  83.                 
  84.                 raise 
  85.  
  86.             del self[key]
  87.             return value
  88.  
  89.         
  90.         def popitem(self):
  91.             
  92.             try:
  93.                 (k, v) = self.iteritems().next()
  94.             except StopIteration:
  95.                 raise KeyError('container is empty')
  96.  
  97.             del self[k]
  98.             return (k, v)
  99.  
  100.         
  101.         def update(self, other = None, **kwargs):
  102.             if other is None:
  103.                 pass
  104.             elif hasattr(other, 'iteritems'):
  105.                 for k, v in other.iteritems():
  106.                     self[k] = v
  107.                 
  108.             elif hasattr(other, 'keys'):
  109.                 for k in other.keys():
  110.                     self[k] = other[k]
  111.                 
  112.             else:
  113.                 for k, v in other:
  114.                     self[k] = v
  115.                 
  116.             if kwargs:
  117.                 self.update(kwargs)
  118.             
  119.  
  120.         
  121.         def get(self, key, default = None):
  122.             
  123.             try:
  124.                 return self[key]
  125.             except KeyError:
  126.                 return default
  127.  
  128.  
  129.         
  130.         def __repr__(self):
  131.             return repr(dict(self.iteritems()))
  132.  
  133.         
  134.         def __cmp__(self, other):
  135.             if other is None:
  136.                 return 1
  137.             
  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.