code: def __init__(
      self,
      dataset: str,
      config: str,
      split: str,
      httpfs: HfFileSystem,
      hf_token: Optional[str],
      parquet_metadata_directory: StrPath,
      max_arrow_data_in_memory: int,
      unsupported_features: list[FeatureType] = [],
  ):
      self.dataset = dataset
      self.config = config
      self.split = split
      self.httpfs = httpfs
      self.parquet_index = self._init_parquet_index(
          hf_token=hf_token,
          parquet_metadata_directory=parquet_metadata_directory,
          max_arrow_data_in_memory=max_arrow_data_in_memory,
          unsupported_features=unsupported_features,
      )
  
imports: import asyncio
  import logging
  import os
  from dataclasses import dataclass, field
  from functools import lru_cache
  from typing import Literal, Optional, TypedDict, Union
  import numpy
  import pyarrow
  import pyarrow.parquet
  from datasets import Features
  from datasets.features.features import FeatureType
  from datasets.utils.py_utils import size_str
  from fsspec.implementations.http import HTTPFile, HTTPFileSystem
  from huggingface_hub import HfFileSystem
  from pyarrow.lib import ArrowInvalid
  from libcommon.constants import CONFIG_PARQUET_METADATA_KINDS
  from libcommon.prometheus import StepProfiler
  from libcommon.simple_cache import get_previous_step_or_raise
  from libcommon.storage import StrPath
  from libcommon.viewer_utils.features import get_supported_unsupported_columns
label_desc: Use image node_id 1 to create a new RowsIndex object  with example: obj = RowsIndex(dataset, config, split, httpfs, hf_token, parquet_metadata_directory, max_arrow_data_in_memory, unsupported_features)