[Zope-dev] zc.relationship - can't pickle module objects

Gary Poster gary.poster at gmail.com
Mon Mar 16 13:23:31 EDT 2009


On Mar 16, 2009, at 1:20 PM, Martin Aspeli wrote:

> Martin Aspeli wrote:
>> Gary Poster wrote:
>>
>>>> Hopefully. Do we know that zc.relationship 1.1 works with both ZODB
>>>> versions?
>>> That would be a significant point of its existence, so I certainly
>>> hope so.  I'm 80%+ confident that it does, and would regard not
>>> supporting 3.7 as a bug that I'd be willing to fix.
>>
>> Right... so I've just fixed the errors Pyflakes found with
>> zc.relationship 1.1 branch. This now works reliably for my ZODB  
>> 3.8.1 build.
>>
>> However, it won't install in my ZODB 3.7 environment, because of this
>> line in setup.py:
>>
>>  'ZODB3 >= 3.8dev',
>>
>> Was that an intentional minimum?
>
> Okay... so, if we remove that restriction, and add the following  
> monkey
> patch to (which is already in plone.relations) to __init__.py, then  
> this
> works on ZODB 3.7 with Zope 2.10, and the tests pass (save for  
> cosmetic
> doctest failures on 3.7 which are easy to fix):
>
> # A tiny monkey patch due to some re-organization of future BTree  
> modules
> try:
>     from BTrees.OOBTree import BTree
> except ImportError:
>     import BTrees.OOBTree
>     import BTrees.IOBTree
>     import BTrees.OIBTree
>     import BTrees.IIBTree
>     import BTrees.IFBTree
>     BTrees.OOBTree.BTree = BTrees.OOBTree.OOBTree
>     BTrees.OOBTree.Set = BTrees.OOBTree.OOSet
>     BTrees.OOBTree.Bucket = BTrees.OOBTree.OOBucket
>     BTrees.OOBTree.TreeSet = BTrees.OOBTree.OOTreeSet
>     BTrees.IOBTree.BTree = BTrees.IOBTree.IOBTree
>     BTrees.IOBTree.Set = BTrees.IOBTree.IOSet
>     BTrees.IOBTree.Bucket = BTrees.IOBTree.IOBucket
>     BTrees.IOBTree.TreeSet = BTrees.IOBTree.IOTreeSet
>     BTrees.OIBTree.BTree = BTrees.OIBTree.OIBTree
>     BTrees.OIBTree.Set = BTrees.OIBTree.OISet
>     BTrees.OIBTree.Bucket = BTrees.OIBTree.OIBucket
>     BTrees.OIBTree.TreeSet = BTrees.OIBTree.OITreeSet
>     BTrees.IIBTree.BTree = BTrees.IIBTree.IIBTree
>     BTrees.IIBTree.Set = BTrees.IIBTree.IISet
>     BTrees.IIBTree.Bucket = BTrees.IIBTree.IIBucket
>     BTrees.IIBTree.TreeSet = BTrees.IIBTree.IITreeSet
>     BTrees.IFBTree.BTree = BTrees.IFBTree.IFBTree
>     BTrees.IFBTree.Set = BTrees.IFBTree.IFSet
>     BTrees.IFBTree.Bucket = BTrees.IFBTree.IFBucket
>     BTrees.IFBTree.TreeSet = BTrees.IFBTree.IFTreeSet
>
>
> Shall I just check that in + the removal of the minimum version pin?

Yes, +1.  Thank you.  I was about to write to your other message that  
this was quite possibly the only 3.8 dependency.

> If we do that, then we can let plone.relations depend on  
> zc.relationship
> 1.1.1 explicitly and have support for both ZODB versions, which  
> would be
> nice.

Sounds great.  Would you like access to the PyPI zc.relationship  
record so you can upload the new version? If so, are you "optilude"  
there?

Gary



More information about the Zope-Dev mailing list