18
18
"""XML externalization support."""
21
__copyright__ = "Copyright (C) 2005 Canonical Ltd."
22
__author__ = "Martin Pool <mbp@canonical.com>"
20
# "XML is like violence: if it doesn't solve your problem, you aren't
21
# using enough of it." -- various
23
# importing this module is fairly slow because it has to load several ElementTree bits
25
from cElementTree import Element, ElementTree, SubElement
25
from cElementTree import ElementTree, SubElement, Element
26
26
except ImportError:
27
from elementtree.ElementTree import Element, ElementTree, SubElement
30
from trace import mutter
34
raise Exception("XMLMixin.to_element must be overridden in concrete classes")
36
def write_xml(self, f):
37
ElementTree(self.to_element()).write(f, 'utf-8')
41
return cls.from_element(ElementTree().parse(f))
43
read_xml = classmethod(read_xml)
27
from elementtree.ElementTree import ElementTree, SubElement, Element
31
"""Write object o to file f as XML.
33
o must provide a to_element method.
35
ElementTree(o.to_element()).write(f, 'utf-8')
39
def unpack_xml(cls, f):
40
return cls.from_element(ElementTree().parse(f))