~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/xml_serializer.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-06-18 05:22:35 UTC
  • mfrom: (1551.15.27 Aaron's mergeable stuff)
  • Revision ID: pqm@pqm.ubuntu.com-20070618052235-mvns8j28szyzscy0
Turn list-weave into list-versionedfile

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
# importing this module is fairly slow because it has to load several
23
23
# ElementTree bits
24
24
 
25
 
from bzrlib import registry
26
25
from bzrlib.trace import mutter, warning
27
26
 
28
27
try:
51
50
 
52
51
class Serializer(object):
53
52
    """Abstract object serialize/deserialize"""
54
 
 
55
53
    def write_inventory(self, inv, f):
56
54
        """Write inventory to a file"""
57
 
        raise NotImplementedError(self.write_inventory)
 
55
        elt = self._pack_inventory(inv)
 
56
        self._write_element(elt, f)
58
57
 
59
58
    def write_inventory_to_string(self, inv):
60
 
        raise NotImplementedError(self.write_inventory_to_string)
61
 
 
62
 
    def read_inventory_from_string(self, xml_string, revision_id=None):
63
 
        """Read xml_string into an inventory object.
64
 
 
65
 
        :param xml_string: The xml to read.
66
 
        :param revision_id: If not-None, the expected revision id of the
67
 
            inventory. Some serialisers use this to set the results' root
68
 
            revision.
69
 
        """
 
59
        return tostring(self._pack_inventory(inv)) + '\n'
 
60
 
 
61
    def read_inventory_from_string(self, xml_string):
70
62
        try:
71
 
            return self._unpack_inventory(fromstring(xml_string), revision_id)
 
63
            return self._unpack_inventory(fromstring(xml_string))
72
64
        except ParseError, e:
73
65
            raise errors.UnexpectedInventoryFormat(e)
74
66
 
75
 
    def read_inventory(self, f, revision_id=None):
 
67
    def read_inventory(self, f):
76
68
        try:
77
 
            return self._unpack_inventory(self._read_element(f),
78
 
                revision_id=None)
 
69
            return self._unpack_inventory(self._read_element(f))
79
70
        except ParseError, e:
80
71
            raise errors.UnexpectedInventoryFormat(e)
81
72
 
164
155
        elementtree.ElementTree._raise_serialization_error(text)
165
156
 
166
157
elementtree.ElementTree._escape_cdata = _escape_cdata
167
 
 
168
 
 
169
 
class SerializerRegistry(registry.Registry):
170
 
    """Registry for serializer objects"""
171
 
 
172
 
 
173
 
format_registry = SerializerRegistry()
174
 
format_registry.register_lazy('4', 'bzrlib.xml4', 'serializer_v4')
175
 
format_registry.register_lazy('5', 'bzrlib.xml5', 'serializer_v5')
176
 
format_registry.register_lazy('6', 'bzrlib.xml6', 'serializer_v6')
177
 
format_registry.register_lazy('7', 'bzrlib.xml7', 'serializer_v7')