def send_fetch_request(self, payloads=[], fail_on_error=True,<EOL>callback=None, max_wait_time=<NUM_LIT:100>, min_bytes=<NUM_LIT>):
encoder = functools.partial(KafkaProtocol.encode_fetch_request,<EOL>max_wait_time=max_wait_time,<EOL>min_bytes=min_bytes)<EOL>resps = self._send_broker_aware_request(<EOL>payloads, encoder,<EOL>KafkaProtocol.decode_fetch_response)<EOL>return [resp if not callback else callback(resp) for resp in resps<EOL>if not fail_on_error or not self._raise_on_response_error(resp)]<EOL>
Encode and send a FetchRequest

Payloads are grouped by topic and partition so they can be pipelined
to the same brokers.