Hello, I would like to know if it is possible for an object stored in a BTree to use acquisition to see its parent object (either the BTree itself or the object that holds the BTree). Here's an example of what I've tried: Python 2.1.1 (#1, Jul 29 2001, 19:04:01) [GCC 2.96 20000731 (Red Hat Linux 7.1 2.96-85)] on linux2 Type "copyright", "credits" or "license" for more information.
from Acquisition import Implicit from BTree import BTree
class A(Implicit): ... pass ... class B(Implicit): ... pass ... class D(Implicit, BTree): ... pass ... a = A()
a.d = D() a.d <D instance at 8118330> a.d.aq_parent <A instance at 8114c28> a.d[1] = B() a.d[1] <B instance at 8114c18> a.d[1].aq_parent Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: aq_parent
The Acquisition machinery has no problem with the regular objects. Class D, which wraps a BTree and implicit acquisition, lets the BTree see its parents, but an acquisition-enabled object placed in an acquisition-enabled BTree still can't see its parent. Any suggestions? Or is this a bad idea? Should I implement another mechanism? The number of objects stored in the BTrees in the final product is unlikely to be more than a few hundred, so another data type might work. Thanks, Joe