class_docstr: The classic Sugiyama layout aka layered layout.
  
  - See https://en.wikipedia.org/wiki/Layered_graph_drawing
  - Excellent explanation: https://www.youtube.com/watch?v=Z0RGCWxvCxA
  
  
  **Attributes**
      - dirvh (int): the current aligment state for alignment policy:
               dirvh=0 -> dirh=+1, dirv=-1: leftmost upper
               dirvh=1 -> dirh=-1, dirv=-1: rightmost upper
               dirvh=2 -> dirh=+1, dirv=+1: leftmost lower
               dirvh=3 -> dirh=-1, dirv=+1: rightmost lower
      - order_iter (int): the default number of layer placement iterations
      - order_attr (str): set attribute name used for layer ordering
      - xspace (int): horizontal space between vertices in a layer
      - yspace (int): vertical space between layers
      - dw (int): default width of a vertex
      - dh (int): default height of a vertex
      - g (GraphBase): the graph component reference
      - layers (list[sugiyama.layer.Layer]): the list of layers
      - layoutVertices (dict): associate vertex (possibly dummy) with their sugiyama attributes
      - ctrls (dict): associate edge with all its vertices (including dummies)
      - dag (bool): the current acyclic state
      - init_done (bool): True if things were initialized
  
  **Example**
  
      ::
  
          g = nx.generators.connected_watts_strogatz_graph(1000, 2, 0.3)
          # render
          SugiyamaLayout.draw(g)
          # positions
          positions_dictionary = SugiyamaLayout.arrange(g)
docstr: Iterator that computes all vertices coordinates and edge routing after
  just one step (one layer after the other from top to bottom to top).
  Use it only for "animation" or debugging purpose.
docstr_tok: ["Iterator","that","computes","all","vertices","coordinates","and","edge","routing","after","just","one","step","(","one","layer","after","the","other","from","top","to","bottom","to","top",")",".","Use","it","only","for","``","animation","''","or","debugging","purpose","."]
code: def draw_step(self):
      """
      Iterator that computes all vertices coordinates and edge routing after
      just one step (one layer after the other from top to bottom to top).
      Use it only for "animation" or debugging purpose.
      """
      ostep = self.ordering_step()
      for s in ostep:
          self.set_coordinates()
          self.layout_edges()
          yield s
  
imports: import pandas, typing
  from sys import getrecursionlimit, setrecursionlimit
  from graphistry.layout.graph import Vertex, GraphBase, Graph, Edge
  from graphistry.layout.utils import DummyVertex, LayoutVertex, Rectangle, size_median
  from graphistry.layout.utils.layer import Layer
label_desc: Use image node_id 23 for calling the SugiyamaLayout obj's underlying member method code with example usage: obj.draw_step() without return types