[Twisted-Python] copy domish element
Ralph Meijer
twisted at ralphm.ik.nu
Tue Jun 9 00:47:36 MDT 2009
On Mon, 2009-06-08 at 18:03 +0100, Phil Mayers wrote:
> Jack Bates wrote:
> > i have a domish element - when i try the following,
> >
> >>>> message = element
> >>>> del message['from']
> >>>> element['from']
> >
> > - i get a key error
>
> Well, yes. That's how python works ;o)
>
> >
> > to avoid this key error, i think i want to copy the element, so i can
> > drop the 'from' attribute from one copy without affecting the other?
> >
> > but i didn't find anything to make a copy in the domish element api
>
> I haven't tried it, but have you tried the python standard copy protocol:
>
> import copy
> message = copy.deepcopy(element)
Deep copies of Element instances is probably not what you want here. See
issue #724.
I suspect from your example that you want to respond to an incoming XML
Stanza. In general, it is better to construct a new stanza from the old
one, keeping the addressing but in reverse. There is a utility function
for this: twisted.words.protocols.jabber.xmlstream.toResponse. For error
responses, you want to look at t.w.p.j.error.StanzaError and its
toResponse method.
--
Groetjes,
ralphm
More information about the Twisted-Python
mailing list