code: def assert_dshape_equal(a, b, path=None, **kwargs):
      assert len(a.dshapes) == len(b.dshapes), (
          "tuples have mismatched field counts: %d != %d\n%r != %r\n%s"
          % (
              len(a.dshapes),
              len(b.dshapes),
              a,
              b,
              _fmt_path(path),
          )
      )
  
      if path is None:
          path = ()
      path += (".dshapes",)
      for n, (ashape, bshape) in enumerate(zip(a.dshapes, b.dshapes)):
          assert_dshape_equal(
              ashape, bshape, path=path + ("[%d]" % n,), **kwargs
          )
  
file_path: datashader/datashader/datashape/util/testing.py
imports: from abc import ABC
  from ..coretypes import DataShape, DateTime, Function, Option, Record, String, Time, TimeDelta, Tuple, Units
  from ..dispatch import dispatch
label_desc: Use image node_id 11 for calling a global function with example usage: assert_dshape_equal(a, b, path) without return types