code: def _rank_init(self, unranked):
      assert self.dag
  
      if not hasattr(self, "initial_ranking"):
          super()._rank_init(unranked)
      else:
          for rank, vertices in sorted(self.initial_ranking.items()):
              for v in vertices:
                  self.layoutVertices[v].layer = rank
                  # add it to its layer:
                  self.layers[rank].append(v)
  
imports: from pickle import dumps, loads, HIGHEST_PROTOCOL
  import numpy, pandas, pytest, unittest
  from graphistry.compute import ComputeMixin
  from graphistry.layouts import LayoutsMixin
  from graphistry.layout.graph import Edge, Graph, Vertex, GraphBase
  from graphistry.layout.sugiyama import SugiyamaLayout
  from graphistry.layout.utils import EdgeViewer, Layer, Rectangle, DummyVertex, route_with_rounded_corners, Poset
  from graphistry.plotter import PlotterBase
label_desc: Use image node_id 2 for calling the CustomRankingSugiyamaLayout obj's underlying member method code with example usage: obj._rank_init(unranked) without return types