class_docstr: Wrapper that allows DataPipe to be sharded (functional name: ``sharding_filter``).
  
  After ``apply_sharding`` is called, each instance of the DataPipe (on different workers) will have every `n`-th element of the
  original DataPipe, where `n` equals to the number of instances.
  
  Args:
      source_datapipe: Iterable DataPipe that will be sharded
code: def __iter__(self):
      for i, item in enumerate(self.source_datapipe):
          if i % self.num_of_instances == self.instance_id:
              yield item
  
file_path: pytorch/torch/utils/data/datapipes/iter/sharding.py
imports: from typing import Dict, Sized, Tuple
  from torch.utils.data.datapipes._decorator import functional_datapipe
  from torch.utils.data.datapipes.datapipe import IterDataPipe
  from enum import IntEnum
label_desc: Use image node_id 4 for calling the ShardingFilterIterDataPipe obj's underlying member method code with example usage: obj.__iter__() without return types