blob: e84256f3dc43c237e7f2f7100a54b0d3404a348a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
--- a/docutils/writers/odf_odt/__init__.py
+++ b/docutils/writers/odf_odt/__init__.py
@@ -88,16 +88,20 @@
# that support for the ability to get the parent of an element.
#
if WhichElementTree == 'elementtree':
- class _ElementInterfaceWrapper(etree._ElementInterface):
+ import weakref
+ _parents = weakref.WeakKeyDictionary()
+ if isinstance(etree.Element, type):
+ _ElementInterface = etree.Element
+ else:
+ _ElementInterface = etree._ElementInterface
+ class _ElementInterfaceWrapper(_ElementInterface):
def __init__(self, tag, attrib=None):
- etree._ElementInterface.__init__(self, tag, attrib)
- if attrib is None:
- attrib = {}
- self.parent = None
+ _ElementInterface.__init__(self, tag, attrib)
+ _parents[self] = None
def setparent(self, parent):
- self.parent = parent
+ _parents[self] = parent
def getparent(self):
- return self.parent
+ return _parents[self]
#
|