[Zope-dev] Two glaring omissions
Tres Seaver
tseaver@digicool.com
Mon, 20 Nov 2000 09:09:23 -0500 (EST)
On Mon, 20 Nov 2000, Toby Dickenson wrote:
> On Thu, 16 Nov 2000 19:51:24 -0500, Tres Seaver <tseaver@digicool.com>
> wrote:
<snip>
> >Correct in theory, but broken in practice: if you make your
> >ZClass persistent (i.e., you leave checked the "Include
> >standard Zope persistent object base classes?" checkbox on the
> >"Add ZClass form), then Persistent will be the first base
> >class in the list, and *your* '__setstate__' will never be
> >called!
>
> Some more theory thats not backed up by any practical
> experience in this area: Would it be sufficent to create a base
> class that derives from Persistent and then uncheck the box? or
> does that checkbox get involved in some other magic?
Actually, I was mistaken. I was spelunking through the ZClass
code (.../lib/python/ZClasses/*.py) this weekend, working on my
filesystem dumper; *all* ZClasses declare
ZClasses.ZClass.PersistentClass as the first class in their base
class list; this class derives only from ExtensionClass.Base,
and not from Persistence.Persistent; I don't any longer know
*why* my ZClasses' '__setstate__' would not be called! The
'zope_object' flag passed to 'manage_addZClass' causes
OFS.SimpleItem.Item to be *appended* to the base class list (so
it should have no effect on the '__setstate__' lookup).
Tres.
--
===============================================================
Tres Seaver tseaver@digicool.com
Digital Creations "Zope Dealers" http://www.zope.org