/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/bzr/chk_serializer.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2020-07-28 02:47:10 UTC
  • mfrom: (7519.1.1 merge-3.1)
  • Revision ID: breezy.the.bot@gmail.com-20200728024710-a2ylds219f1lsl62
Merge lp:brz/3.1.

Merged from https://code.launchpad.net/~jelmer/brz/merge-3.1/+merge/388173

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Serializer object for CHK based inventory storage."""
18
18
 
19
 
from __future__ import absolute_import
 
19
from io import (
 
20
    BytesIO,
 
21
    )
20
22
 
21
23
from .. import lazy_import
22
24
lazy_import.lazy_import(globals(),
23
25
                        """
24
26
from breezy.bzr import (
 
27
    serializer,
25
28
    xml_serializer,
26
29
    )
27
30
""")
34
37
from . import (
35
38
    serializer,
36
39
    )
37
 
from ..sixish import (
38
 
    BytesIO,
39
 
    )
40
40
 
41
41
 
42
42
def _validate_properties(props, _decode=cache_utf8._utf8_decode):
43
43
    # TODO: we really want an 'isascii' check for key
44
44
    # Cast the utf8 properties into Unicode 'in place'
45
 
    return {_decode(key)[0]: _decode(value)[0] for key, value in props.items()}
 
45
    return {_decode(key)[0]: _decode(value, 'surrogateescape')[0] for key, value in props.items()}
46
46
 
47
47
 
48
48
def _is_format_10(value):
90
90
        # which changes infrequently.
91
91
        revprops = {}
92
92
        for key, value in rev.properties.items():
93
 
            revprops[encode_utf8(key)[0]] = encode_utf8(value)[0]
 
93
            revprops[encode_utf8(key)[0]] = encode_utf8(value, 'surrogateescape')[0]
94
94
        ret.append((b'properties', revprops))
95
95
        ret.extend([
96
96
            (b"timestamp", b"%.3f" % rev.timestamp),
183
183
                entry_cache=entry_cache,
184
184
                return_from_cache=return_from_cache)
185
185
        except xml_serializer.ParseError as e:
186
 
            raise errors.UnexpectedInventoryFormat(e)
 
186
            raise serializer.UnexpectedInventoryFormat(e)
187
187
 
188
188
    def read_inventory(self, f, revision_id=None):
189
189
        """Read an inventory from a file-like object."""
194
194
            finally:
195
195
                f.close()
196
196
        except xml_serializer.ParseError as e:
197
 
            raise errors.UnexpectedInventoryFormat(e)
 
197
            raise serializer.UnexpectedInventoryFormat(e)
198
198
 
199
199
    def write_inventory_to_lines(self, inv):
200
200
        """Return a list of lines with the encoded inventory."""