def __getattribute__(self, attr): if attr == 'cache': return BaseCache.__getattribute__(self, attr) return wrap(getattr(self.cache, attr), key(self.cache, attr))