code: def find_circular_dep(graph: DepGraph) -> Dict[str, List[int]]:
      """Find circular dependencies among a dependency graph."""
      known = {}
      circles = {}
      for m, id in graph.ids.items():
          branch = []
          if _find_circular_dep_impl(graph, id, branch):
              if branch[-1] in known:
                  # Already knew, skip.
                  continue
              # Since this is a cycle dependency, any step along the circle
              # will form a different circle.
              # So we mark every entry on this circle known.
              for n in branch:
                  known[n] = True
              # Mark that module m contains a potential circular dep.
              circles[m] = branch
      return circles
  
imports: import argparse
  import ast
  import os
  import re
  import subprocess
  import sys
  from typing import Dict, List, Tuple
label_desc: Use image node_id 16 for calling a global function with example usage: find_circular_dep(graph) and returns: circles