1 """A more or less complete user-defined wrapper around dictionary objects."""
4 def __init__(self
, dict=None):
6 if dict is not None: self
.update(dict)
7 def __repr__(self
): return repr(self
.data
)
8 def __cmp__(self
, dict):
9 if isinstance(dict, UserDict
):
10 return cmp(self
.data
, dict.data
)
12 return cmp(self
.data
, dict)
13 def __len__(self
): return len(self
.data
)
14 def __getitem__(self
, key
): return self
.data
[key
]
15 def __setitem__(self
, key
, item
): self
.data
[key
] = item
16 def __delitem__(self
, key
): del self
.data
[key
]
17 def clear(self
): self
.data
.clear()
19 if self
.__class
__ is UserDict
:
20 return UserDict(self
.data
)
22 return copy
.copy(self
)
23 def keys(self
): return self
.data
.keys()
24 def items(self
): return self
.data
.items()
25 def iteritems(self
): return self
.data
.iteritems()
26 def iterkeys(self
): return self
.data
.iterkeys()
27 def itervalues(self
): return self
.data
.itervalues()
28 def values(self
): return self
.data
.values()
29 def has_key(self
, key
): return self
.data
.has_key(key
)
30 def update(self
, dict):
31 if isinstance(dict, UserDict
):
32 self
.data
.update(dict.data
)
33 elif isinstance(dict, type(self
.data
)):
34 self
.data
.update(dict)
36 for k
, v
in dict.items():
38 def get(self
, key
, failobj
=None):
39 if not self
.has_key(key
):
42 def setdefault(self
, key
, failobj
=None):
43 if not self
.has_key(key
):
47 return self
.data
.popitem()
48 def __contains__(self
, key
):
49 return key
in self
.data
51 return iter(self
.data
)