code: def _test_pg_wrapper_scatter_object_list(
      cls,
  ) -> None:
      dist.init_process_group("gloo")
      pg_wrapper = PGWrapper(dist.group.WORLD)
      output_list = [None] * 4
      pg_wrapper.scatter_object_list(
          output_list=output_list,
          input_list=[1, 2, 3, 4]
          if get_local_rank() == 0
          else [None] * 4,
          src=0,
      )
      tc = unittest.TestCase()
      tc.assertEqual(output_list[0], get_local_rank() + 1)
  
imports: import os
  import unittest
  from typing import Literal, Optional, Union
  from unittest.mock import MagicMock, patch
  from urllib.parse import parse_qs, urlparse
  import torch
  import torch.distributed
  import torch.distributed.launcher
  from pyre_extensions import none_throws
  from torchtnt.utils.distributed import _validate_global_rank_world_size, all_gather_tensors, destroy_process_group, get_file_init_method, get_global_rank, get_local_rank, get_local_world_size, get_process_group_backend_from_device, get_tcp_init_method, get_world_size, PGWrapper, rank_zero_fn, revert_sync_batchnorm, sync_bool
  from torchtnt.utils.test_utils import get_pet_launch_config
label_desc: Use image node_id 34 for calling the DistributedTest obj's underlying member method code with example usage: obj._test_pg_wrapper_scatter_object_list(cls) without return types