(node: str)
| 75 | cycles = [] |
| 76 | |
| 77 | def dfs(node: str): |
| 78 | visited.add(node) |
| 79 | stack.append(node) |
| 80 | on_stack.add(node) |
| 81 | |
| 82 | for neighbor in edges.get(node, ()): |
| 83 | if neighbor not in visited: |
| 84 | dfs(neighbor) |
| 85 | elif neighbor in on_stack: |
| 86 | idx = stack.index(neighbor) |
| 87 | cycle = stack[idx:] + [neighbor] |
| 88 | cycles.append(cycle) |
| 89 | |
| 90 | stack.pop() |
| 91 | on_stack.remove(node) |
| 92 | |
| 93 | for node in edges: |
| 94 | if node not in visited: |
no test coverage detected