code: def test_nodes_str_ids(self):
      g = graphistry.nodes(
          pd.DataFrame({"n": ["a", "b", "c"]}), "n"
      ).edges(
          pd.DataFrame({"s": ["a", "b", "c"], "d": ["b", "c", "a"]}),
          "s",
          "d",
      )
      with warnings.catch_warnings():
          warnings.filterwarnings("ignore", category=FutureWarning)
          ig = g.to_igraph()
      ig.vs["spinglass"] = ig.community_spinglass(spins=3).membership
      g2 = g.from_igraph(ig)
  
      assert len(g2._nodes) == len(g._nodes)
      assert g2._node == g._node
      assert sorted(g2._nodes.columns) == sorted(["n", "spinglass"])
  
      assert len(g2._edges) == len(g._edges)
      assert g2._source == g._source
      assert g2._destination == g._destination
      assert sorted(g2._edges.columns) == sorted(["s", "d"])
  
imports: import pyarrow
  import graphistry, logging, pandas, pytest, warnings
  from graphistry.tests.common import NoAuthTestCase
  from graphistry.constants import SRC, DST, NODE
  from graphistry.plugins.igraph import SRC_IGRAPH, DST_IGRAPH, compute_algs, compute_igraph, layout_algs, layout_igraph
label_desc: Use image node_id 12 for calling the Test_from_igraph obj's underlying member method code with example usage: obj.test_nodes_str_ids() without return types