[ZODB-Dev] n-way join algoritms

Steve Alexander steve at cat-box.net
Tue Jun 24 12:27:38 EDT 2003


>>Fine. I'd be happy with:
>>
>>   class IIntegerTreeModule(IBTreeModule):
>>       "This interface is provided by the IIBTree and IOBTree
>>modules."
>>
>>       def multiunion(list args):
>>           "Explain what and why and whatever"
> 
> 
> I'll add something like that, then, but only in Zope3/ZODB4.

Thanks!


> There are
> currently variations of the BTree code on 6 active branches, and I'm
> spending too much of my life trying to update everything in half a dozen
> diverging places.

I do hope this situation will improve as Zope 2 and Zope 3 converge.


> BTW, it's hard to explain the truth about how to use multiunion, because it
> accepts a sequence of objects each of which is convertible to an integer set
> using the internal BTrees set iteration protocol.  That's actually true of
> lots of arguments to lots of BTree methods.  The concept isn't covered by
> the current interfaces, though -- which in one sense just begs your original
> question ("how do you find out what isn't documented?"; my question is more
> "how do you document something when there isn't a manual to hold any docs?"
> <0.9 wink>).

I'd be satisfied if the btrees/interfaces.py module said "To understand 
what these things mean, see the ZODB docs at 
http://www.zope.org/Wikis/ZODB/guide/node6.html#SECTION000630000000000000000" 
or whereever the canonical location is.


>>The zope.interface package provides the means to say that a module
>>provides an interface, so you could use that if you like.
> 
> I don't know exactly what to do so am inclinced to skip this part.  Note
> that the btree code is supposed to be usable independent of Zope.  As is,
> Jeremy already had to comment out the classImplements() calls in the btrees
> interfaces.py module because of intractable circular import problems.

If the classImplements calls are important, I'd add them to the C code 
that initialises the modules, or (for convenience) put them in the 
__init__.py of the btrees package.


>>Ok. What about refactoring it...
> 
> Na, it sounds more like busy work than something useful, especially since
> you already find the interface file useful as-is.

Ok.

--
Steve Alexander




More information about the ZODB-Dev mailing list