@staticmethod<EOL><INDENT>def make_tuple(stream, tuple_key, values, roots=None):<DEDENT>
component_name = stream.component_name<EOL>stream_id = stream.id<EOL>gen_task = roots[<NUM_LIT:0>].taskid if roots is not None and len(roots) > <NUM_LIT:0> else None<EOL>return HeronTuple(id=str(tuple_key), component=component_name, stream=stream_id,<EOL>task=gen_task, values=values, creation_time=time.time(), roots=roots)<EOL>
Creates a HeronTuple

        :param stream: protobuf message ``StreamId``
        :param tuple_key: tuple id
        :param values: a list of values
        :param roots: a list of protobuf message ``RootId``