class_docstr: Iterator for sharding batch into num_shards batches.
  
  Args:
      batch: The input multi-agent batch.
      num_shards: The number of shards to split the batch into.
  
  Yields:
      A MultiAgentBatch of size len(batch) / num_shards.
code: def __init__(self, batch: MultiAgentBatch, num_shards: int):
      self._batch = batch
      self._num_shards = num_shards
  
imports: import math
  from typing import List
  from ray.rllib.policy.sample_batch import MultiAgentBatch, concat_samples
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils.annotations import DeveloperAPI
  from ray.rllib.utils.typing import EpisodeType
label_desc: Use image node_id 1 to create a new ShardBatchIterator object  with example: obj = ShardBatchIterator(batch, num_shards)