diff options
author | ianb <devnull@localhost> | 2007-01-11 21:15:55 +0000 |
---|---|---|
committer | ianb <devnull@localhost> | 2007-01-11 21:15:55 +0000 |
commit | db5eddc51c44bdffd747146773424f63c5b5f941 (patch) | |
tree | 7350cd623b4d160ede5fe485bd7aad29b21e1715 /paste/registry.py | |
parent | c7ba1243aa0ae31524311c5d9fdd697bc00efb56 (diff) | |
download | paste-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.py | 11 |
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): """ |