class_docstr: Abstract class that serves as a base class for anything that
  draws an igraph.Graph.
class_docstr_tok: ["Abstract","class","that","serves","as","a","base","class","for","anything","that","draws","an","igraph.Graph","."]
docstr: Returns the order in which the vertices of the given graph have to be
  drawn, assuming that the relevant keyword arguments (C{vertex_order} and
  C{vertex_order_by}) are given in C{kwds} as a dictionary. If neither
  C{vertex_order} nor C{vertex_order_by} is present in C{kwds}, this
  function returns C{None} to indicate that the graph drawer is free to
  choose the most convenient vertex ordering.
docstr_tok: ["Returns","the","order","in","which","the","vertices","of","the","given","graph","have","to","be","drawn",",","assuming","that","the","relevant","keyword","arguments","(","C","{","vertex_order","}","and","C","{","vertex_order_by","}",")","are","given","in","C","{","kwds","}","as","a","dictionary",".","If","neither","C","{","vertex_order","}","nor","C","{","vertex_order_by","}","is","present","in","C","{","kwds","}",",","this","function","returns","C","{","None","}","to","indicate","that","the","graph","drawer","is","free","to","choose","the","most","convenient","vertex","ordering","."]
code: def _determine_vertex_order(graph, kwds):
      """Returns the order in which the vertices of the given graph have to be
      drawn, assuming that the relevant keyword arguments (C{vertex_order} and
      C{vertex_order_by}) are given in C{kwds} as a dictionary. If neither
      C{vertex_order} nor C{vertex_order_by} is present in C{kwds}, this
      function returns C{None} to indicate that the graph drawer is free to
      choose the most convenient vertex ordering."""
      if "vertex_order" in kwds:
          # Vertex order specified explicitly
          return kwds["vertex_order"]
  
      if kwds.get("vertex_order_by") is None:
          # No vertex order specified
          return None
  
      # Order vertices by the value of some attribute
      vertex_order_by = kwds["vertex_order_by"]
      reverse = False
      if isinstance(vertex_order_by, tuple):
          vertex_order_by, reverse = vertex_order_by
          if isinstance(reverse, str):
              reverse = reverse.lower().startswith("desc")
      attrs = graph.vs[vertex_order_by]
      vertex_order = sorted(
          range(len(attrs)),
          key=attrs.__getitem__,
          reverse=bool(reverse),
      )
  
      return vertex_order
  
imports: from abc import ABCMeta, abstractmethod
  from math import atan2, pi
  from .text import TextAlignment
  from .utils import get_bezier_control_points_for_curved_edge, evaluate_cubic_bezier
label_desc: Use image node_id 4 for calling the AbstractGraphDrawer obj's underlying member method code with example usage: obj._determine_vertex_order(graph, kwds) and returns: vertex_order, kwds, None