code: def _open_iterator(self) -> Iterable[Any]:
      # iterator from airstore for current data split. data are sharded by global
      # total number of workers after shuffling
  
      # extract numbers of dataloading workers and current worker id (range from 0 to
      # num_workers-1) from torch.utils. If we can't get worker_info we assume the
      # current process is the only dataloading worker.
      worker_info = torch.utils.data.get_worker_info()
      if worker_info is None:
          num_workers = 1
          worker_id = 0
      else:
          num_workers = worker_info.num_workers
          worker_id = worker_info.id
  
      # split the dataset for each worker
      airstore_world_size = self.global_world_size * num_workers
      # each worker take it's split by it's parent process rank and worker id
      airstore_rank = self.global_rank * num_workers + worker_id
      shuffle = self.split == "train" and self.config.get(
          "enable_shuffle", True
      )
  
      return self.pathmanager.opent(
          self.airstore_uri,
          "r",
          enable_shuffle=shuffle,
          shuffle_window=self.config.get("shuffle_window", 128),
          seed=self.epoch,
          world_size=airstore_world_size,
          rank=airstore_rank,
          limit=self.config.get("data_limit", -1),
          offset=self.config.get("data_offset", 0),
          num_of_threads=self.config.get("num_of_threads", 2),
          prefetch=self.config.get("prefetch", 1),
          max_holding_bundles=self.config.get("max_holding_bundles", 5),
          bundle_download_timeout_ms=self.config.get(
              "bundle_download_timeout_ms", 30000
          ),
          max_retries=self.config.get("max_retries", 5),
          env=self.config.get(
              "env", "OSS"
          ),  # Set to "FB" if run in FB, "RSC" for RSC, otherwise set to "OSS"
      )
  
file_path: mmf/mmf/datasets/builders/airstore/dataset.py
imports: import logging
  from io import BytesIO
  from typing import Any, Iterable
  import torch
  from iopath.common.file_io import PathManager
  from mmf.common.sample import Sample
  from mmf.datasets.base_dataset import BaseDataset
  from mmf.utils.general import get_batch_size
  from PIL import Image, ImageFile
label_desc: Use image node_id 3 for calling the AirstoreDataset obj's underlying member method code with example usage: obj._open_iterator() and returns: self