code: def test_chaining_edges(self):
      g = graphistry.edges(edge_df, "src", "dst")
      with warnings.catch_warnings():
          warnings.filterwarnings("ignore", category=UserWarning)
          warnings.filterwarnings("ignore", category=DeprecationWarning)
          warnings.filterwarnings("ignore", category=FutureWarning)
          g2 = g.umap(kind="edges", dbscan=False)
          g3 = g.featurize(kind="edges").umap(
              kind="edges", dbscan=False
          )
  
      assert all(
          g2._feature_params["edges"]["X"]
          == g3._feature_params["edges"]["X"]
      )
      assert all(
          g2._feature_params["edges"]["y"]
          == g3._feature_params["edges"]["y"]
      )  # None
      assert all(g2._edge_features == g3._edge_features)
  
imports: from xml.sax.handler import feature_external_ges
  import pytest
  import unittest
  import warnings
  import graphistry
  import os
  import logging
  import numpy
  import pandas
  from graphistry import Plottable
  from graphistry.feature_utils import remove_internal_namespace_if_present
  from graphistry.tests.test_feature_utils import ndf_reddit, text_cols_reddit, meta_cols_reddit, good_cols_reddit, single_target_reddit, double_target_reddit, edge_df, edge_df2, edge2_target_df, model_avg_name, lazy_import_has_min_dependancy, check_allclose_fit_transform_on_same_data
  from graphistry.umap_utils import lazy_umap_import_has_dependancy, lazy_cuml_import_has_dependancy, lazy_cudf_import_has_dependancy
label_desc: Use image node_id 5 for calling the TestUMAPAIMethods obj's underlying member method code with example usage: obj.test_chaining_edges() without return types