code: def _pairwise_product_dict_iter(
      *parameters: tp.Iterable[tp.Dict[str, tp.Any]]
  ) -> tp.Iterator[tp.Dict[str, tp.Any]]:
      """Generate combinations that cover all pairs.
  
      The argument is the same as `chainer.testing.product_dict`.
  
      """
      parameter_lists = [
          list(dicts) for dicts in parameters
      ]  # type: tp.List[tp.List[tp.Dict[str, tp.Any]]]  # NOQA
  
      for nd_index in sorted(
          _nd_indices_to_cover_each_2d(
              [len(dicts) for dicts in parameter_lists]
          )
      ):
          yield {
              k: v
              for i, dicts in zip(nd_index, parameter_lists)
              for k, v in dicts[i].items()
          }
  
imports: import functools
  import itertools
  import types
  import typing
  import unittest
  import numpy
  import six
  from chainer.testing import _bundle
  from chainer import utils
label_desc: Use image node_id 13 for calling a global function with example usage: _pairwise_product_dict_iter() without return types