code: def _shape_and_dtypes(shapes, dtypes):
      for shape in shapes:
          for dtype in _valid_dtypes_for_shape(shape, dtypes):
              yield (shape, dtype)
  
imports: import collections
  from functools import partial
  import itertools
  import unittest
  from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  import jax
  from jax import numpy
  from jax._src import config
  from jax._src import dtypes
  from jax._src import test_util
  from jax._src.util import NumpyComplexWarning
label_desc: Use image node_id 2 for calling a global function with example usage: _shape_and_dtypes(shapes, dtypes) without return types