[Twisted-Python] copy.deepcopy domish.Element works in python 2.5 but not in 2.6
Ralph Meijer
twisted at ralphm.ik.nu
Fri Dec 18 08:37:36 EST 2009
On Thu, 2009-12-17 at 18:11 +0000, exarkun at twistedmatrix.com wrote:
> On 05:40 pm, gabriel.rossetti at arimaz.com wrote:
> >Hello everyone,
> >
> >for some reason copy.deepcopy forks great on a domish.Element on 2.5
> >but
> >not in 2.6 :
>
> Actually, it looks like it works about equally well on either version.
> While it looks like an exception was raised by deepcopy on Python 2.6,
> notice that the exception was actually *ignored*. You get back a copy,
> and it even seems to have all the right attributes. ;)
>
> The infinite recursion in deepcopy happens on Python 2.5 as well. I'm
> not completely sure why it's not being reported, but it probably has to
> do with tiny differences in how deepcopy works. hasattr is well known
> for swallowing exceptions silently. The impressive thing is that the
> error is reported at all in Python 2.6.
>
> A good rule of thumb is to assume that types don't support being copied
> like this unless their docs explicitly state that they do. If you want
> this to be supported, it's probably not too hard to implement. Feel
> free to file a ticket with a patch. :)
There is an open ticket about this:
http://twistedmatrix.com/trac/ticket/724
In short: it is probably a bad idea, and I'm curious about the possible
useful use cases.
ralphm
More information about the Twisted-Python
mailing list