docs: def _add_edge_dmap_fun(graph, edges_weights=None):
      """
      Adds edge to the dispatcher map.
  
      :param graph:
          A directed graph.
      :type graph: networkx.classes.digraph.DiGraph
  
      :param edges_weights:
          Edge weights.
      :type edges_weights: dict, optional
  
      :return:
          A function that adds an edge to the `graph`.
      :rtype: callable
      """
  
      add = graph.add_edge  # Namespace shortcut for speed.
  
      if edges_weights is not None:
          def add_edge(i, o, w):
              if w in edges_weights:
                  add(i, o, weight=edges_weights[w])  # Weighted edge.
              else:
                  add(i, o)  # Normal edge.
      else:
          # noinspection PyUnusedLocal
          def add_edge(i, o, w):
              add(i, o)  # Normal edge.
  
      return add_edge