27
from bzrlib.serializer import Serializer
28
from bzrlib.trace import mutter
30
import xml.etree.cElementTree as elementtree
31
ParseError = getattr(elementtree, "ParseError", SyntaxError)
32
# it's in this package in python2.5
33
from xml.etree.cElementTree import (ElementTree, SubElement, Element,
34
XMLTreeBuilder, fromstring, tostring)
35
import xml.etree as elementtree
36
# Also import ElementTree module so monkey-patching below always works
37
import xml.etree.ElementTree
39
from cElementTree import (ElementTree, SubElement, Element,
40
XMLTreeBuilder, fromstring, tostring)
41
import elementtree.ElementTree
42
ParseError = SyntaxError
32
43
except ImportError:
33
# Fall back to pure python implementation if C extension is unavailable
34
import xml.etree.ElementTree as elementtree
36
from xml.etree.ElementTree import ParseError
38
from xml.parsers.expat import ExpatError as ParseError
40
(ElementTree, SubElement, Element, XMLTreeBuilder, fromstring, tostring) = (
41
elementtree.ElementTree, elementtree.SubElement, elementtree.Element,
42
elementtree.XMLTreeBuilder, elementtree.fromstring, elementtree.tostring)
44
mutter('WARNING: using slower ElementTree; consider installing cElementTree'
45
" and make sure it's on your PYTHONPATH")
46
# this copy is shipped with bzr
47
from util.elementtree.ElementTree import (ElementTree, SubElement,
48
Element, XMLTreeBuilder,
50
import util.elementtree as elementtree
51
from xml.parsers.expat import ExpatError as ParseError
45
53
from bzrlib import (
54
class XMLSerializer(serializer.Serializer):
61
class XMLSerializer(Serializer):
55
62
"""Abstract XML object serialize/deserialize"""
57
64
squashes_xml_invalid_characters = True
311
318
ie.symlink_target = elt_get('symlink_target')
312
elif kind == 'tree-reference':
313
file_id = elt.attrib['file_id']
314
name = elt.attrib['name']
315
parent_id = elt.attrib['parent_id']
316
revision = elt.get('revision')
317
reference_revision = elt.get('reference_revision')
318
ie = inventory.TreeReference(file_id, name, parent_id, revision,
321
320
raise errors.UnsupportedInventoryKind(kind)
322
321
ie.revision = revision