[ZODB-Dev] ExtensionClass tp_compare fix
Gfeller Martin
Martin.Gfeller at comit.ch
Mon Jan 5 13:37:27 EST 2004
Thanks, Tim - good to know that I haven't lost my senses completely over
the year end -:)...
Yes, that's the warning I'm seeing, and '$Id: ExtensionClass.c,v 1.58
2002/11/12 20:04:20 jeremy Exp $'
is the version I got as well.
Hope Brian can check on the installer, as I'm not experienced in
building from sources.
Cheers, Martin
-----Original Message-----
From: Tim Peters [mailto:tim at zope.com]
Sent: Monday, 05 Jan 2004 19:31
To: Gfeller Martin; Brian Lloyd
Cc: zodb-dev at zope.org
Subject: RE: [ZODB-Dev] ExtensionClass tp_compare fix
[Martin Gfeller, trying Zope 2.7b3 on Windows]
> Thanks, Tim.
>
> Now I'm a bit confused - I thought I had downloaded and installed B3,
> but its Control Panel says it's B2 - although the Python build it
> reports is 2.3.2 (#49, Oct 3 2003, 10:25:57), which is after the
> release date of B2 (I didn't downloade Python separately, and am
> using the binary build).
>
> ExtensionClass.pyd has the date of 03 Oct 2003, 10:21:41.
>
> Could it be that B3 doesn't know how advanced it is :-) ?
> But that would mean that I still have the problem.
Thanks for the followup, Martin. I don't know how the Zope 2.7 beta 3
installer got built for Windows, but I agree it looks goofy in at least
the
ways you've reported. I downloaded it just now and installed it:
Zope-2.7.0-b3-win32.exe
Control Panel indeed says
Zope Version (Zope 2.7.0-b2, python 2.3.2, win32)
so maybe the 2.7b3 Windows installer in fact packaged 2.7b2 again (or
even
something older than that -- see below).
>From the 2.7B3 *tarball* download, I verified that the fix for
ExtensionClass comparisons that started this is in what Linux people
think
of as 2.7b3. But I don't think it's in the ExtenionClass binary
installed
by the 2.7b3 Windows installer:
C:\Program Files\Zope-2.7.0-b3>set PYTHONPATH=lib/python
C:\Program Files\Zope-2.7.0-b3>bin\python
Python 2.3.2 (#49, Oct 3 2003, 10:25:57) [MSC v.1200 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ExtensionClass
>>> print ExtensionClass.__doc__
ExtensionClass - Classes implemented in c
Built-in C classes are like Built-in types except that
they provide some of the behavior of Python classes:
- They provide access to unbound methods,
- They can be called to create instances.
$Id: ExtensionClass.c,v 1.58 2002/11/12 20:04:20 jeremy Exp $
>>>
The last line of text there says the ExtensionClass version actually
installed is CVS revison 1.58, more than a year old. That would explain
why
you're seeing problems that were fixed a long time ago (but not *that*
long
ago <wink>). Continuing the session above:
>>> class A(ExtensionClass.ExtensionClass):
... def __init__(self):
... pass
...
>>> a = A()
>>> b = A()
>>> cmp(a, b)
__main__:1: RuntimeWarning: tp_compare didn't return -1, 0 or 1
-1
>>>
That's the specific RuntimeWarning you're seeing, right?
I'm copying Brian Lloyd in the hope that he can shed more light on this.
More information about the ZODB-Dev
mailing list