diff options
author | Lance Stout <lancestout@gmail.com> | 2010-06-06 23:12:54 -0400 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2010-06-06 23:12:54 -0400 |
commit | 9962f1a664cfe72b88d78d8541f269f290de8643 (patch) | |
tree | d088532add088feb462876e0d72e38f0b9dea7da | |
parent | 253de8518cfb2461f2172fbffd9b2a252924cb00 (diff) | |
download | slixmpp-9962f1a664cfe72b88d78d8541f269f290de8643.tar.gz slixmpp-9962f1a664cfe72b88d78d8541f269f290de8643.tar.bz2 slixmpp-9962f1a664cfe72b88d78d8541f269f290de8643.tar.xz slixmpp-9962f1a664cfe72b88d78d8541f269f290de8643.zip |
Added a __copy__ method to both ElementBase and StanzaBase.
Stanzas may now be copied using copy.copy(), which will be useful to prevent
stanza objects from being shared between event handlers.
-rw-r--r-- | sleekxmpp/xmlstream/stanzabase.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py index 64020c8f..a0d8f5d0 100644 --- a/sleekxmpp/xmlstream/stanzabase.py +++ b/sleekxmpp/xmlstream/stanzabase.py @@ -10,6 +10,7 @@ import logging import traceback import sys import weakref +import copy if sys.version_info < (3,0): from . import tostring26 as tostring @@ -308,6 +309,9 @@ class ElementBase(tostring.ToString): def appendxml(self, xml): self.xml.append(xml) return self + + def __copy__(self): + return self.__class__(xml=copy.copy(self.xml), parent=self.parent) #def __del__(self): #prevents garbage collection of reference cycle # if self.parent is not None: @@ -386,3 +390,6 @@ class StanzaBase(ElementBase): def send(self): self.stream.sendRaw(self.__str__()) + def __copy__(self): + return self.__class__(xml=copy.copy(self.xml), stream=self.stream) + |