code: def _forward_slice(
      self, *slices: Union[None, slice, Iterable[int]]
  ) -> Optional[Iterable[int]]:
      any_slice = False
      indices = list(range(self._full_length()))
      for sl in slices:
          if sl is None:
              continue
          any_slice = True
  
          slice_indices = slice_alike_object_to_indices(
              slice_alike_object=sl, max_length=len(indices)
          )
  
          new_indices = [indices[x] for x in slice_indices]
          indices = new_indices
  
      if any_slice:
          return indices
      else:
          return None
  
imports: from abc import ABC, abstractmethod
  import bisect
  import copy
  from typing import Iterator, overload
  from typing_extensions import final
  import numpy
  from numpy import ndarray
  from torch import Tensor
  from torch.utils.data import Subset
  from .dataset_definitions import IDatasetWithTargets
  from typing import Sequence, List, Iterable, Union, Optional, TypeVar, Callable, Generic
label_desc: Use image node_id 7 for calling the SliceSequence obj's underlying member method code with example usage: obj._forward_slice() and returns: indices, None