def __init__(
        self,
        name: str,
        exps: Sequence[TCLExperience],
        benchmark: "Optional[CLScenario]" = None,
        set_stream_info: bool = True,
        slice_ids: Optional[Iterable[int]] = None,
    ):
        """Create a CL stream given a list of experiences.
        :param name: name of the stream.
        :param exps: list of experiences.
        :param benchmark: a reference to the benchmark.
        :param set_stream_info: if True, set the `origin_stream` and
            `current_experience` identifier for each experience. If False,
            the attributes are left unchanged.
        :param slice_ids: The indices of experiences to include. from the
            original stream. Defaults to None. For internal use.
        """
        self._exps: List[TCLExperience] = list(exps)
        super().__init__(
            name=name,
            benchmark=benchmark,
            set_stream_info=set_stream_info,
            slice_ids=slice_ids,
        )

        if self.set_stream_info:
            slice_ids_enum = (
                self.slice_ids if self.slice_ids is not None else range(len(self._exps))
            )
            for i in slice_ids_enum:
                exp = self._exps[i]
                exp.current_experience = i
                exp.origin_stream = self  # type: ignore

            self.set_stream_info = False
Create a CL stream given a list of experiences.
        :param name: name of the stream.
        :param exps: list of experiences.
        :param benchmark: a reference to the benchmark.
        :param set_stream_info: if True, set the `origin_stream` and
            `current_experience` identifier for each experience. If False,
            the attributes are left unchanged.
        :param slice_ids: The indices of experiences to include. from the
            original stream. Defaults to None. For internal use.
        
avalanche/benchmarks/scenarios/generic_scenario.py