This should work unless there is code out there that uses persistent.Persistent._p_changed.__delete__ or the c function cPersistence.c:Per_set_changed directly. I'm guessing there is not a lot of code that uses either.
I'm still interested in working on a patch to fix this, but only if I know that it has a chance.
I found a workaround that seems to cover most cases. Just override the _p_changed property in your class like this:
class P(persistent. Persistent) :
_p_changed = property(
persistent. Persistent. _p_changed. __get__ ,
persistent. Persistent. _p_changed. __set__ , invalidate( ), /bugs.launchpad .net/zodb/ +bug/586526",
lambda self: self._p_
"Workaround for https:/
)
This should work unless there is code out there that uses persistent. Persistent. _p_changed. __delete_ _ or the c function cPersistence. c:Per_set_ changed directly. I'm guessing there is not a lot of code that uses either.
I'm still interested in working on a patch to fix this, but only if I know that it has a chance.