code: def _assert_dict_contents_are_equal(
      a, b, message, ignore=(), equals_fn=_strict_equals
  ):
      combined_keys = set(a.keys()) | set(b.keys())
      for k in combined_keys - set(ignore):
          a_val = a.get(k, None)
          b_val = b.get(k, None)
          if not equals_fn(a_val, b_val):
              raise ValueError(
                  message + " `{}`: {} vs {}.".format(k, a_val, b_val)
              )
  
imports: import collections
  import types
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import joint_distribution_auto_batched
  from tensorflow_probability.python.distributions import sample
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.sts.internal import util
  from tensorflow.python.util import deprecation
label_desc: Use image node_id 2 for calling a global function with example usage: _assert_dict_contents_are_equal(a, b, message, ignore, equals_fn) without return types