docs: def nx_all_nodes_between(graph, source, target, data=False):
      """
      Find all nodes with on paths between source and target.
      """
      import utool as ut
      if source is None:
          # assume there is a single source
          sources = list(ut.nx_source_nodes(graph))
          assert len(sources) == 1, (
              'specify source if there is not only one')
          source = sources[0]
      if target is None:
          # assume there is a single source
          sinks = list(ut.nx_sink_nodes(graph))
          assert len(sinks) == 1, (
              'specify sink if there is not only one')
          target = sinks[0]
      all_simple_paths = list(nx.all_simple_paths(graph, source, target))
      nodes = sorted(set.union(*map(set, all_simple_paths)))
      return nodes