Hi,
copy/deepcopy copies all xml content, but information about added
methods is lost.
Here is small example:
[------------ subclass.py-----------------]
from __future__ import print_function
from lxml import etree
import copy
class DefaultElementClass(etree.ElementBase):
def getLocalTag(self):
return etree.QName(self.tag).localname
def printInformation(x):
print(x, x.__class__, "getLocalTag" in dir(x))
a = DefaultElementClass()
printInformation(a)
#
printInformation(copy.copy(a))
printInformation(copy.deepcopy(a))
[-----------------------------------------]
Output:
<Element DefaultElementClass at 0x7f13d15416d8> <class '__main__.DefaultElementClass'> True
<Element DefaultElementClass at 0x7f13d1652d88> <type 'lxml.etree._Element'> False
<Element DefaultElementClass at 0x7f13d1652d88> <type 'lxml.etree._Element'> False
Expected output:
<Element DefaultElementClass at 0x7f13d15416d8> <class '__main__.DefaultElementClass'> True
<Element DefaultElementClass at 0x7f13d15416d8> <class '__main__.DefaultElementClass'> True
<Element DefaultElementClass at 0x7f13d15416d8> <class '__main__.DefaultElementClass'> True
How create copy of the element and keep all methods
from subclass?
python-lxml:amd64 4.2.3-1
--
Best regards,
Andrey Skvortsov