def find_order(self):
        graph = dict((k, set(v)) for k, v in self.graph.items())
        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)
Decorator to note which object methods require authorization.
dataset/ETHPy150Open kivy/kivy-ios/toolchain.py/Graph.find_order--crossover with--dataset/ETHPy150Open sigmavirus24/github3.py/github3/decorators.py/requires_auth