~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/xml_serializer.py

  • Committer: Jelmer Vernooij
  • Date: 2009-04-02 15:28:11 UTC
  • mto: This revision was merged to the branch mainline in revision 4253.
  • Revision ID: jelmer@samba.org-20090402152811-0uxng6q5kseoug7q
Add new module with generic serializer information; keep XML-specific bits in 
xml_serializer.

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
 
25
from bzrlib.serializer import Serializer
26
26
from bzrlib.trace import mutter, warning
27
27
 
28
28
try:
49
49
from bzrlib import errors
50
50
 
51
51
 
52
 
class Serializer(object):
53
 
    """Abstract object serialize/deserialize"""
54
 
 
55
 
    def write_inventory(self, inv, f):
56
 
        """Write inventory to a file"""
57
 
        raise NotImplementedError(self.write_inventory)
58
 
 
59
 
    def write_inventory_to_string(self, inv):
60
 
        raise NotImplementedError(self.write_inventory_to_string)
 
52
class XMLSerializer(Serializer):
 
53
    """Abstract XML object serialize/deserialize"""
61
54
 
62
55
    def read_inventory_from_string(self, xml_string, revision_id=None,
63
56
                                   entry_cache=None):
173
166
        elementtree.ElementTree._raise_serialization_error(text)
174
167
 
175
168
elementtree.ElementTree._escape_cdata = _escape_cdata
176
 
 
177
 
 
178
 
class SerializerRegistry(registry.Registry):
179
 
    """Registry for serializer objects"""
180
 
 
181
 
 
182
 
format_registry = SerializerRegistry()
183
 
format_registry.register_lazy('4', 'bzrlib.xml4', 'serializer_v4')
184
 
format_registry.register_lazy('5', 'bzrlib.xml5', 'serializer_v5')
185
 
format_registry.register_lazy('6', 'bzrlib.xml6', 'serializer_v6')
186
 
format_registry.register_lazy('7', 'bzrlib.xml7', 'serializer_v7')
187
 
format_registry.register_lazy('8', 'bzrlib.xml8', 'serializer_v8')