class_docstr: The streaming dataset can be used once your data have been optimised using the DatasetOptimiser class.
class_docstr_tok: ["The","streaming","dataset","can","be","used","once","your","data","have","been","optimised","using","the","DatasetOptimiser","class","."]
code: def _create_shuffler(self, cache: Cache) -> Shuffle:
      seed = self.seed
      drop_last = self.drop_last
      if self._state_dict is not None:
          restart_keys = sorted(self._state_dict)
          state: Dict[str, Any] = self._state_dict[restart_keys[-1]]
          seed = state["seed"]
          drop_last = state["drop_last"]
      return (
          FullShuffle(cache, seed, drop_last)
          if self.shuffle
          else NoShuffle(cache, seed, drop_last)
      )
  
imports: import hashlib
  import os
  from dataclasses import dataclass
  from time import time
  from typing import Any, Dict, List, Optional, Tuple, Union
  import numpy
  from torch.utils.data import IterableDataset, get_worker_info
  from lightning.data.streaming import Cache
  from lightning.data.streaming.constants import _DEFAULT_CACHE_DIR, _INDEX_FILENAME, _LIGHTNING_CLOUD_LATEST
  from lightning.data.streaming.item_loader import BaseItemLoader
  from lightning.data.streaming.sampler import ChunkedIndex
  from lightning.data.streaming.serializers import Serializer
  from lightning.data.streaming.shuffle import FullShuffle, NoShuffle, Shuffle
  from lightning.data.utilities.env import Environment, _DistributedEnv, _WorkerEnv
label_desc: Use image node_id 3 for calling the StreamingDataset obj's underlying member method code with example usage: obj._create_shuffler(cache) and returns: unknown