home *** CD-ROM | disk | FTP | other *** search
/ PC Extra 07 & 08 / pca1507.iso / Software / psp8 / Data1.cab / UserDict.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2003-04-22  |  5.2 KB  |  131 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.2)
  3.  
  4. '''A more or less complete user-defined wrapper around dictionary objects.'''
  5.  
  6. class UserDict:
  7.     
  8.     def __init__(self, dict = None):
  9.         self.data = { }
  10.         if dict is not None:
  11.             self.update(dict)
  12.         
  13.  
  14.     
  15.     def __repr__(self):
  16.         return repr(self.data)
  17.  
  18.     
  19.     def __cmp__(self, dict):
  20.         if isinstance(dict, UserDict):
  21.             return cmp(self.data, dict.data)
  22.         else:
  23.             return cmp(self.data, dict)
  24.  
  25.     
  26.     def __len__(self):
  27.         return len(self.data)
  28.  
  29.     
  30.     def __getitem__(self, key):
  31.         return self.data[key]
  32.  
  33.     
  34.     def __setitem__(self, key, item):
  35.         self.data[key] = item
  36.  
  37.     
  38.     def __delitem__(self, key):
  39.         del self.data[key]
  40.  
  41.     
  42.     def clear(self):
  43.         self.data.clear()
  44.  
  45.     
  46.     def copy(self):
  47.         if self.__class__ is UserDict:
  48.             return UserDict(self.data)
  49.         
  50.         import copy
  51.         data = self.data
  52.         
  53.         try:
  54.             self.data = { }
  55.             c = copy.copy(self)
  56.         finally:
  57.             self.data = data
  58.  
  59.         c.update(self)
  60.         return c
  61.  
  62.     
  63.     def keys(self):
  64.         return self.data.keys()
  65.  
  66.     
  67.     def items(self):
  68.         return self.data.items()
  69.  
  70.     
  71.     def iteritems(self):
  72.         return self.data.iteritems()
  73.  
  74.     
  75.     def iterkeys(self):
  76.         return self.data.iterkeys()
  77.  
  78.     
  79.     def itervalues(self):
  80.         return self.data.itervalues()
  81.  
  82.     
  83.     def values(self):
  84.         return self.data.values()
  85.  
  86.     
  87.     def has_key(self, key):
  88.         return self.data.has_key(key)
  89.  
  90.     
  91.     def update(self, dict):
  92.         if isinstance(dict, UserDict):
  93.             self.data.update(dict.data)
  94.         elif isinstance(dict, type(self.data)):
  95.             self.data.update(dict)
  96.         else:
  97.             for k, v in dict.items():
  98.                 self[k] = v
  99.             
  100.  
  101.     
  102.     def get(self, key, failobj = None):
  103.         if not self.has_key(key):
  104.             return failobj
  105.         
  106.         return self[key]
  107.  
  108.     
  109.     def setdefault(self, key, failobj = None):
  110.         if not self.has_key(key):
  111.             self[key] = failobj
  112.         
  113.         return self[key]
  114.  
  115.     
  116.     def popitem(self):
  117.         return self.data.popitem()
  118.  
  119.     
  120.     def __contains__(self, key):
  121.         return key in self.data
  122.  
  123.  
  124.  
  125. class IterableUserDict(UserDict):
  126.     
  127.     def __iter__(self):
  128.         return iter(self.data)
  129.  
  130.  
  131.