<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def stream_keys(self, bucket, timeout=None):
 """ Streams keys from a bucket, returning an iterator that yields lists of keys. """

        msg_code = riak.pb.messages.MSG_CODE_LIST_KEYS_REQ
        codec = self._get_codec(msg_code)
        msg = codec.encode_stream_keys(bucket, timeout)
        self._send_msg(msg.msg_code, msg.data)
        return PbufKeyStream(self, codec)