[Twisted-Python] help with InsecureJelly for unkown objects inclasses
exarkun at divmod.com
Thu Mar 17 12:44:18 EST 2005
On Thu, 17 Mar 2005 09:58:08 -0700, Ben Olsen <bolsen at verio.net> wrote:
> I realize the error isn't specific to pygame in any way, I was just
> hoping to give everyone enough context. I'm getting the error because a
> pygame.Rect isn't a jellyable object. But so far I haven't been able to
> make a jellyable object out of it. The problem for me is that this Rect
> object is inside of another class (i.e. a GameState class). I can set
> pb.Copyable and pb.RemoteCopy on the GameState class, and it goes back
> and forth just fine, but *only* if I remove the pygame.Rect attributes
> from it.
> I searched the twisted site for "declare pb.Copyable once," and even
> just the word "Henning," but I couldn't find any threads about this. And
> unfortunately the howto doesn't help, since all it shows is how to send
> a simple class back and forth, which I can do fine.
> Any other suggestions for getting a class with non-standard objects in
> it to jelly properly?
One approach is to override getStateToCopy (or jellyFor, or getStateToCopyFor, or __getstate__, or several of the above, or all of the above, depending) on your GameState class. Your implementation can do something like convert the rect to a tuple (or something else easily jellyable). Similarly, your unjellier can convert the tuple back to a rect.
More information about the Twisted-Python