/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/bundle/serializer/v08.py

  • Committer: Jelmer Vernooij
  • Date: 2018-06-15 13:10:28 UTC
  • mto: (6973.12.2 python3-k)
  • mto: This revision was merged to the branch mainline in revision 6993.
  • Revision ID: jelmer@jelmer.uk-20180615131028-abolpmqrid8th0cd
More bees.

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
 
69
69
    def write(self, to_file):
70
70
        """Write action as to a file"""
71
 
        p_texts = [' '.join([self.name]+self.parameters)]
 
71
        p_texts = [b' '.join([self.name]+self.parameters)]
72
72
        for prop in self.properties:
73
73
            if len(prop) == 1:
74
74
                p_texts.append(prop[0])
75
75
            else:
76
76
                try:
77
 
                    p_texts.append('%s:%s' % prop)
 
77
                    p_texts.append(b'%s:%s' % prop)
78
78
                except:
79
79
                    raise repr(prop)
80
 
        text = ['=== ']
81
 
        text.append(' // '.join(p_texts))
 
80
        text = [b'=== ']
 
81
        text.append(b' // '.join(p_texts))
82
82
        text_line = ''.join(text).encode('utf-8')
83
83
        available = 79
84
84
        while len(text_line) > available:
85
85
            to_file.write(text_line[:available])
86
86
            text_line = text_line[available:]
87
 
            to_file.write('\n... ')
88
 
            available = 79 - len('... ')
89
 
        to_file.write(text_line+'\n')
 
87
            to_file.write(b'\n... ')
 
88
            available = 79 - len(b'... ')
 
89
        to_file.write(text_line+b'\n')
90
90
 
91
91
 
92
92
class BundleSerializerV08(BundleSerializer):
126
126
    def _write_main_header(self):
127
127
        """Write the header for the changes"""
128
128
        f = self.to_file
129
 
        f.write(_get_bundle_header('0.8'))
130
 
        f.write('#\n')
 
129
        f.write(_get_bundle_header(b'0.8'))
 
130
        f.write(b'#\n')
131
131
 
132
132
    def _write(self, key, value, indent=1, trailing_space_when_empty=False):
133
133
        """Write out meta information, with proper indenting, etc.
141
141
        if indent < 1:
142
142
            raise ValueError('indentation must be greater than 0')
143
143
        f = self.to_file
144
 
        f.write('#' + (' ' * indent))
 
144
        f.write(b'#' + (b' ' * indent))
145
145
        f.write(key.encode('utf-8'))
146
146
        if not value:
147
147
            if trailing_space_when_empty and value == '':
148
 
                f.write(': \n')
 
148
                f.write(b': \n')
149
149
            else:
150
 
                f.write(':\n')
151
 
        elif isinstance(value, str):
152
 
            f.write(': ')
 
150
                f.write(b':\n')
 
151
        elif isinstance(value, bytes):
 
152
            f.write(b': ')
153
153
            f.write(value)
154
 
            f.write('\n')
 
154
            f.write(b'\n')
155
155
        elif isinstance(value, unicode):
156
 
            f.write(': ')
 
156
            f.write(b': ')
157
157
            f.write(value.encode('utf-8'))
158
 
            f.write('\n')
 
158
            f.write(b'\n')
159
159
        else:
160
 
            f.write(':\n')
 
160
            f.write(b':\n')
161
161
            for entry in value:
162
 
                f.write('#' + (' ' * (indent+2)))
163
 
                if isinstance(entry, str):
 
162
                f.write(b'#' + (b' ' * (indent+2)))
 
163
                if isinstance(entry, bytes):
164
164
                    f.write(entry)
165
165
                else:
166
166
                    f.write(entry.encode('utf-8'))
167
 
                f.write('\n')
 
167
                f.write(b'\n')
168
168
 
169
169
    def _write_revisions(self, pb):
170
170
        """Write the information for all of the revisions."""