code: def __init__(
      self,
      meta_tree,
      series_tree,
      *,
      columns: List[Tuple[str, str]],
      n_items: int = -1,
  ):
      super().__init__(series_tree, version=2, columns=columns)
      # `SequenceV2Data` has access to both metadata and series data
      # trees that are not necessarily based on the same physical storage.
      # Therefore, we don't have a consistency guarantee between the two.
      # The implemented methods should tolerate this.
      self.meta_tree = meta_tree
      self.n_items = n_items
      self.steps: ArrayView = self._get_array("step")
  
imports: from typing import Generic, Union, Tuple, TypeVar, Dict, Iterator, Any, List
  from itertools import islice
  import numpy
  import logging
  from aim.sdk.tracker import STEP_HASH_FUNCTIONS
  from aim.storage.treeview import TreeView
  from aim.storage.arrayview import ArrayView
  from aim.storage.context import Context
  from aim.storage.hashing import hash_auto
  from typing import TYPE_CHECKING
label_desc: Use image node_id 1 to create a new SequenceV2Data object from inherited base classes: SequenceData with example: obj = SequenceV2Data(meta_tree, series_tree)