docstr: .. Warning::
      When `data` consists of multiple independently sampled series
      (e.g. feature functions which take multiple series as input),
      The time-**index of each series**: 
  
      - must _roughly_ **share** the same **sample frequency**.
      - will be first time-aligned before transitioning to sample-segmentation by
        using the inner bounds
  
  .. Note::
      `TimeIndexSampleStridedRolling` **does not support** the
      ``segment_start_idxs`` and ``segment_end_idxs`` arguments. Setting these
      will raise a NotImplementedError.
docstr_tok: ["..","Warning",":",":","When","`","data","`","consists","of","multiple","independently","sampled","series","(","e.g",".","feature","functions","which","take","multiple","series","as","input",")",",","The","time-","*","*","index","of","each","series","*","*",":","-","must","_roughly_","*","*","share","*","*","the","same","*","*","sample","frequency","*","*",".","-","will","be","first","time-aligned","before","transitioning","to","sample-segmentation","by","using","the","inner","bounds","..","Note",":",":","`","TimeIndexSampleStridedRolling","`","*","*","does","not","support","*","*","the","``","segment_start_idxs","``","and","``","segment_end_idxs","``","arguments",".","Setting","these","will","raise","a","NotImplementedError","."]
code: def __init__(
      self,
      # TODO -> update arguments
      data: Union[
          pd.Series, pd.DataFrame, List[Union[pd.Series, pd.DataFrame]]
      ],
      window: int,
      strides: Optional[Union[int, List[int]]] = None,
      segment_start_idxs: Optional[np.ndarray] = None,
      segment_end_idxs: Optional[np.ndarray] = None,
      *args,
      **kwargs,
  ):
      """
      .. Warning::
          When `data` consists of multiple independently sampled series
          (e.g. feature functions which take multiple series as input),
          The time-**index of each series**: \n
          - must _roughly_ **share** the same **sample frequency**.
          - will be first time-aligned before transitioning to sample-segmentation by
            using the inner bounds
  
      .. Note::
          `TimeIndexSampleStridedRolling` **does not support** the
          ``segment_start_idxs`` and ``segment_end_idxs`` arguments. Setting these
          will raise a NotImplementedError.
  
      """
      if segment_start_idxs is not None or segment_end_idxs is not None:
          raise NotImplementedError(
              "TimeIndexSampleStridedRolling is not implemented to support passing"
              + "segment_start_idxs or segment_end_idxs"
          )
  
      # We want to reset the index as its type differs from the passed win-stride
      # configs
      self.reset_series_index_b4_segmenting = True
  
      series_list = to_series_list(data)
      if isinstance(data, list) and len(data) > 1:
          # Slice data into its inner range so that the start position
          # is aligned (when we will use sample-based methodologies)
          start, end = _determine_bounds("inner", series_list)
          series_list = [s[start:end] for s in series_list]
          kwargs.update({"start_idx": start, "end_idx": end})
  
      # We retain the first series list to stitch back the output index
      self._series_index = series_list[0].index
  
      # pass the sliced series list instead of data
      super().__init__(series_list, window, strides, *args, **kwargs)
  
      assert self.series_dtype == DataType.TIME
  
      # we want to assure that the window-stride arguments are integers (samples)
      assert all(
          isinstance(p, int) for p in [self.window] + self.strides
      )
  
imports: from __future__ import annotations
  import time
  import warnings
  from abc import ABC, abstractmethod
  from collections import namedtuple
  from typing import List, Optional, Tuple, TypeVar, Union
  import numpy
  import pandas
  from ...utils.attribute_parsing import AttributeParser, DataType
  from ...utils.data import SUPPORTED_STROLL_TYPES, to_list, to_series_list, to_tuple
  from ...utils.time import timedelta_to_str
  from ..function_wrapper import FuncWrapper, _get_name
  from ..logger import logger
  from ..utils import _check_start_end_array, _determine_bounds
label_desc: Use image node_id 1 to create a new TimeIndexSampleStridedRolling object from inherited base classes: SequenceStridedRolling with example: obj = TimeIndexSampleStridedRolling(data, window, strides, segment_start_idxs, segment_end_idxs)