[Python-Dev] Bug with ExtensionClass and __coerce__
Christian Reis
kiko@async.com.br
Sat, 28 Jun 2003 14:53:46 -0300
In the next chapter of the war for Persistent.__cmp__, I found a bug in
ExtensionClass's handling of __coerce__. Here's a paired-down testcase.
from ExtensionClass import Base
class Foo(Base):
def __coerce__(self, other): return None
class Bar(Base):
def __coerce__(self, other): return NotImplemented
f = Foo(); assert 0 < f
-> SystemError: error return without exception set
b = Bar(); assert 0 < b
-> SystemError: new style getargs format but argument is not a tuple
As far as I know (and the PSL docs say) these are the only valid ways to
give up __coerce__. Guido has in the past provided a hint to the latter
error:
http://mail.zope.org/pipermail/zope-coders/2002-January/000594.html
Take care,
--
Christian Reis, Senior Engineer, Async Open Source, Brazil.
http://async.com.br/~kiko/ | [+55 16] 261 2331 | NMFL