You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-python/docutils/files/docutils-0.11-python3.3-odt...

31 lines
1.0 KiB

--- 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]
#