At 09:18 PM 9/17/00 +0100, Steve Alexander wrote:
ZPatterns-0-4-2a2
When I use an External Attribute Provider, I get an infinite recursion problem, and Zope hangs.
Argh. This is what happens when I create a new feature on the spur of the moment and toss it in just before a release. :(
This is because DataManager (in DataManagers.py) uses normal getattr() and object.__skinSlot__ methods to get and set the special attribute __skinSlot__ on DataSkins.
Yes, that clearly should be fixed.
This works, in as far as I can do things like add sub-objects to a ZClass that derives from DataSkin and ObjectManager without infinite regress. However, I still get an attribute error. This is because the External Attribute Provider only offers to set and delete its attributes. I'm confused as to why this should be -- surely the External Attribute Provider should offer to get the same attributes as it is offering to set and delete?
Yes, it should, and that's my own stupid implementation error. I forgot to include code for that. :( I'll do another update release this week to fix this and the other problem you reported (w/link to parent providers). You might want to report the list vs. string behavior on that one to the Collector, since that does indeed sound like a Zope bug to me. IMHO, multi-select properties ought to be tuples anyway, but they certainly should never be a string.