summaryrefslogtreecommitdiff
path: root/paste/registry.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2007-01-11 21:15:55 +0000
committerianb <devnull@localhost>2007-01-11 21:15:55 +0000
commitdb5eddc51c44bdffd747146773424f63c5b5f941 (patch)
tree7350cd623b4d160ede5fe485bd7aad29b21e1715 /paste/registry.py
parentc7ba1243aa0ae31524311c5d9fdd697bc00efb56 (diff)
downloadpaste-db5eddc51c44bdffd747146773424f63c5b5f941.tar.gz
On StackedObjectProxy: Make repr() safer; use better overrides for delattr, delitem, iter, contains
Diffstat (limited to 'paste/registry.py')
-rw-r--r--paste/registry.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/paste/registry.py b/paste/registry.py
index bc9100e..9e84bfb 100644
--- a/paste/registry.py
+++ b/paste/registry.py
@@ -129,7 +129,7 @@ class StackedObjectProxy(object):
setattr(self._current_obj(), attr, value)
def __delattr__(self, name):
- self._current_obj().__delattr__(name)
+ delattr(self._current_obj(), name)
def __getitem__(self, key):
return self._current_obj()[key]
@@ -138,25 +138,24 @@ class StackedObjectProxy(object):
self._current_obj()[key] = value
def __delitem__(self, key):
- self._current_obj().__delitem__(key)
+ del self._current_obj()[key]
def __repr__(self):
try:
return repr(self._current_obj())
- except TypeError:
+ except (TypeError, AttributeError):
return '<%s.%s object at 0x%08x>' % (__name__,
self.__class__.__name__,
id(self))
def __iter__(self):
- """Only works for proxying to a dict"""
- return iter(self._current_obj().keys())
+ return iter(self._current_obj())
def __len__(self):
return len(self._current_obj())
def __contains__(self, key):
- return self._current_obj().has_key(key)
+ return key in self._current_obj()
def current_obj(self):
"""