I am trying to implement a proxy class (specifically for the purposes of multi-versioned document objects (folderish proxies that contain the object that they proxy to). I am using __getattr__ within my product, and the code pasted below works, and does not "break" Implicit acquisition (because the object that _CurrentVersion points to is subclassed from SimpleItem, which implements Implicit Acquisition). However, because of the way that this messes with Acquisition, certain things like accessing the ZMI pages or acquired methods can be quite slow (but work). I suspect that this is because an instance of this class actually acquires items through the item it proxies to, which conveniently is contained inside it, which makes acquisition work for the instance of this class (albeit magnitudes slower).
I would really like to make this perform better and act properly, but I'm at a loss as to the right way to do this. Thoughts? Sean class MVProxy(Folder): """ Object acting as proxy to multiple document implementations serving for each version of this document; this is a proxy object class Subclasses OFS.Folder.Folder """ def __init__(self, id, title=''): self.id = id self.title = title timestamp = str(int(time.mktime(time.localtime()))) currentId = id+'_'+timestamp current = DocumentCoreImpl(currentId, title) self._setObject(currentId, current) self._CurrentVersion = current def __getattr__(self, name): return getattr(self._CurrentVersion, name) +----------------------------------------------------------- | Sean Upton | Site Technology Supervisor SignOnSanDiego.com | Development & Integration The San Diego Union-Tribune | 619.718.5241 [EMAIL PROTECTED] | PATH_TO_THE_DARK_SIDE = 'c:\winnt\system32' +----------------------------------------------------------- _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )