[ZODB-Dev] Issue trying to remove elements in OOTreeSet
Jim Fulton
jim at zope.com
Fri Sep 24 11:09:58 EDT 2010
On Fri, Sep 24, 2010 at 9:27 AM, Shane Hathaway <shane at hathawaymix.org> wrote:
> On 09/24/2010 07:03 AM, Jim Fulton wrote:
>>
>> On Fri, Sep 24, 2010 at 4:17 AM, César Muñoz<xcumail at gmail.com> wrote:
>>>
>>> Hello Marius,
>>>
>>> thank you so much for your quick answer! I'll give it a try implementing
>>> these methods and will get back to you with the result.
>>> But anyway, the Chatroom class is inheriting from Persistent, I thought
>>> this
>>> base class provided some basic comparison methods...
>>
>> It does. That's the problem. It would be better if it didn't and
>> insertion failed. The methods it provides are inherited from object
>> and compare based on object address, which completely inappropriate
>> for persistent objects.
>
> +1, FWIW.
I wasn't proposing to change anything. :) Breaking inheritance to avoid
inheriting a bad cmp seems rather too tricky. (I assume there isn't
a default comparison in Python 3, although I haven't checked.)
I suppose that the BTree implementation could check for object's
bad comparison operator and fail if it sees it. (Details omitted. :)
This obviously wouldn't happen in 3.10, but might be a fun project for
someone in 3.11.
Jim
--
Jim Fulton
More information about the ZODB-Dev
mailing list