code: def test_from_networkx_with_sequence_attributes(nx, typ) -> None:
      G = nx.Graph()
      G.add_nodes_from(
          [
              (0, {"attr_1": typ([1, 2]), "attr_2": 10}),
              (1, {}),
              (2, {"attr_1": typ([3]), "attr_2": 30}),
          ]
      )
      G.add_edges_from(
          [
              (0, 1, {"attr_1": typ([1, 11])}),
              (0, 2, {"attr_1": typ([2, 22]), "attr_2": 10}),
          ]
      )
  
      renderer = bpg.from_networkx(G, nx.circular_layout)
  
      assert renderer.node_renderer.data_source.data["index"] == [
          0,
          1,
          2,
      ]
      assert renderer.node_renderer.data_source.data["attr_1"] == [
          [1, 2],
          [],
          [3],
      ]
      assert renderer.node_renderer.data_source.data["attr_2"] == [
          10,
          None,
          30,
      ]
  
      assert renderer.edge_renderer.data_source.data["start"] == [0, 0]
      assert renderer.edge_renderer.data_source.data["end"] == [1, 2]
      assert renderer.edge_renderer.data_source.data["attr_1"] == [
          [1, 11],
          [2, 22],
      ]
      assert renderer.edge_renderer.data_source.data["attr_2"] == [
          None,
          10,
      ]
  
file_path: bokeh/tests/unit/bokeh/plotting/test_graph.py
imports: from __future__ import annotations
  import pytest
  import numpy
  from numpy.testing import assert_allclose
  import bokeh.plotting.graph
label_desc: Use image node_id 4 for calling a global function with example usage: test_from_networkx_with_sequence_attributes(nx, typ) without return types