docs: def find_order(graph):
      '''
      Do a topological sort on the dependency graph dict.
      '''
      while graph:
          # Find all items without a parent
          leftmost = [l for l, s in graph.items() if not s]
          if not leftmost:
              raise ValueError('Dependency cycle detected! %s' % graph)
          # If there is more than one, sort them for predictable order
          leftmost.sort()
          for result in leftmost:
              # Yield and remove them from the graph
              yield result
              graph.pop(result)
              for bset in graph.values():
                  bset.discard(result)