code: def get_stream(self, stream_name: str) -> StreamWrapper:
          
          if stream_name not in self._streams:
              stream_fn_name = '{}_stream'.format(stream_name)
              try:
                  stream_fn = getattr(self._dataset, stream_fn_name)
                  stream_epoch_limit = -1
                  if self._fixed_epoch_size is not None and stream_name == self._train_stream_name:
                      stream_epoch_limit = self._fixed_epoch_size
                  self._streams[stream_name] = StreamWrapper(stream_fn, buffer_size=self._buffer,
                                                             epoch_size=stream_epoch_limit, name=stream_name,
                                                             profile=self._epoch_profile)
              except AttributeError as ex:
                  raise AttributeError('The dataset does not have a function for creating a stream named `{}`. '
                                       'The function has to be named `{}`.'.format(stream_name, stream_fn_name)) from ex
          return self._streams[stream_name]
docs: Get a :py:class:`StreamWrapper` with the given name.
  
          :param stream_name: stream name
          :return: dataset function name providing the respective stream
          :raise AttributeError: if the dataset does not provide the function creating the stream