code: def is_shallow(self, H, G):
      # graph
      assert G.graph["foo"] == H.graph["foo"]
      G.graph["foo"].append(1)
      assert G.graph["foo"] == H.graph["foo"]
      # node
      assert G.nodes[0]["foo"] == H.nodes[0]["foo"]
      G.nodes[0]["foo"].append(1)
      assert G.nodes[0]["foo"] == H.nodes[0]["foo"]
      # edge
      assert G[1][2][0]["foo"] == H[1][2][0]["foo"]
      G[1][2][0]["foo"].append(1)
      assert G[1][2][0]["foo"] == H[1][2][0]["foo"]
  
imports: from collections import UserDict
  import pytest
  import networkx
  from networkx.utils import edges_equal
  from .test_multigraph import BaseMultiGraphTester
  from .test_multigraph import TestEdgeSubgraph
  from .test_multigraph import TestMultiGraph
label_desc: Use image node_id 10 for calling the BaseMultiDiGraphTester obj's underlying member method code with example usage: obj.is_shallow(H, G) without return types