docs: def encode_fetch_request(cls, payloads=(), max_wait_time=100, min_bytes=4096):
          """
          Encodes a FetchRequest struct
  
          Arguments:
              payloads: list of FetchRequestPayload
              max_wait_time (int, optional): ms to block waiting for min_bytes
                  data. Defaults to 100.
              min_bytes (int, optional): minimum bytes required to return before
                  max_wait_time. Defaults to 4096.
  
          Return: FetchRequest
          """
          return kafka.protocol.fetch.FetchRequest[0](
              replica_id=-1,
              max_wait_time=max_wait_time,
              min_bytes=min_bytes,
              topics=[(
                  topic,
                  [(
                      partition,
                      payload.offset,
                      payload.max_bytes)
                  for partition, payload in topic_payloads.items()])
              for topic, topic_payloads in group_by_topic_and_partition(payloads).items()])