'Return a topologically-sorted iterator over the terms in ``self`` which
need to be computed.'

def execution_order(self, refcounts):

    return iter(topological_sort(self.graph.subgraph({term for (term, refcount) in refcounts.items() if (refcount > 0)})))
