At 04:35 PM 10/25/2005 -0700, Bryan Stearns wrote:
Hope you're weathering the weather :-) ... I'm trying to track down a problem where an installParcel() is getting called twice, with different values for the 'parcel' parameter (which means it creates twice as many repository items, parented in two different places!).

The parcel is parcels/osaf/framework/attributeEditors. the __init__.py in this directory imports (among other things) installParcel() from the AttributeEditors.py file (also in this directory). If I put a breakpoint on the installParcel() method in AttributeEditors.py, and launch Chandler with --create, I see that it gets called twice, with different 'parcel's:

The first time, the 'parcel' parameter prints as: <Parcel (new): attributeEditors e9260d9a-459a-11da-c3e3-0050f2e8b09c> (note the lowercase "a" in "attributeEditors"). The second time, it prints as: <Parcel (new): AttributeEditors e9260d9a-459a-11da-c3e2-0050f2e8b09c> (note the uppercase "A" in "AttributeEditors").

The problem here is that AttributeEditors is a parcel, too. So, you are indeed getting it called twice. If you want the AttributeEditors module to be part of the parent package's parcel, you need a __parcel__ at the top, of 'osaf.framework.attributeEditors'. Otherwise, it is assumed to be an independent parcel, so its installParcel() gets called.

Modules with a __parcel__ are part of that parcel, modules without a __parcel__ *are* parcels. Thus, in this case, AttributeEditors.installParcel() is called once to install the AttributeEditors (sub)parcel, and once by the code in the parent parcel.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

Reply via email to