def _byte_stream_to_stream(byte_stream, record_counter=None): """Convert a byte stream into a format and a stream. :param byte_stream: A bytes iterator, as output by _stream_to_byte_stream. :return: (RepositoryFormat, stream_generator) """ decoder = _ByteStreamDecoder(byte_stream, record_counter) for bytes in byte_stream: decoder.stream_decoder.accept_bytes(bytes) for record in decoder.stream_decoder.read_pending_records(max=1): record_names, src_format_name = record src_format = network_format_registry.get(src_format_name) return src_format, decoder.record_stream()
def do_repository_request(self, repository, to_network_name): """Get a stream for inserting into a to_format repository. The request body is 'search_bytes', a description of the revisions being requested. In 2.3 this verb added support for search_bytes == 'everything'. Older implementations will respond with a BadSearch error, and clients should catch this and fallback appropriately. :param repository: The repository to stream from. :param to_network_name: The network name of the format of the target repository. """ self._to_format = network_format_registry.get(to_network_name) if self._should_fake_unknown(): return FailedSmartServerResponse( ('UnknownMethod', 'Repository.get_stream')) return None # Signal that we want a body.