/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/pack.py

  • Committer: Jelmer Vernooij
  • Date: 2018-11-16 19:47:19 UTC
  • mfrom: (7178 work)
  • mto: This revision was merged to the branch mainline in revision 7179.
  • Revision ID: jelmer@jelmer.uk-20181116194719-m5ut2wfuze5x9s1p
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
159
159
        length = len(bytes)
160
160
        if length < self._JOIN_WRITES_THRESHOLD:
161
161
            self.write_func(self._serialiser.bytes_header(length, names)
162
 
                + bytes)
 
162
                            + bytes)
163
163
        else:
164
164
            self.write_func(self._serialiser.bytes_header(length, names))
165
165
            self.write_func(bytes)
170
170
 
171
171
class ReadVFile(object):
172
172
    """Adapt a readv result iterator to a file like protocol.
173
 
    
 
173
 
174
174
    The readv result must support the iterator protocol returning (offset,
175
175
    data_bytes) pairs.
176
176
    """
193
193
 
194
194
    def _next(self):
195
195
        if (self._string is None or
196
 
            self._string.tell() == self._string_length):
 
196
                self._string.tell() == self._string_length):
197
197
            offset, data = next(self.readv_result)
198
198
            self._string_length = len(data)
199
199
            self._string = BytesIO(data)
203
203
        result = self._string.read(length)
204
204
        if len(result) < length:
205
205
            raise errors.BzrError('wanted %d bytes but next '
206
 
                'hunk only contains %d: %r...' %
207
 
                (length, len(result), result[:20]))
 
206
                                  'hunk only contains %d: %r...' %
 
207
                                  (length, len(result), result[:20]))
208
208
        return result
209
209
 
210
210
    def readline(self):
213
213
        result = self._string.readline()
214
214
        if self._string.tell() == self._string_length and result[-1:] != b'\n':
215
215
            raise errors.BzrError('short readline in the readvfile hunk: %r'
216
 
                % (result, ))
 
216
                                  % (result, ))
217
217
        return result
218
218
 
219
219
 
225
225
    :param requested_records: The record offset, length tuples as returned
226
226
        by add_bytes_record for the desired records.
227
227
    """
228
 
    readv_blocks = [(0, len(FORMAT_ONE)+1)]
 
228
    readv_blocks = [(0, len(FORMAT_ONE) + 1)]
229
229
    readv_blocks.extend(requested_records)
230
230
    result = ContainerReader(ReadVFile(
231
231
        transport.readv(filename, readv_blocks)))
464
464
        newline_pos = self._buffer.find(b'\n')
465
465
        if newline_pos != -1:
466
466
            line = self._buffer[:newline_pos]
467
 
            self._buffer = self._buffer[newline_pos+1:]
 
467
            self._buffer = self._buffer[newline_pos + 1:]
468
468
            return line
469
469
        else:
470
470
            return None
539
539
            yield record
540
540
        if parser.finished:
541
541
            break
542