code: def iter_modules(path=None, prefix=''):
      
  
      if path is None:
          importers = iter_importers()
      else:
          importers = map(get_importer, path)
  
      yielded = {}
      for i in importers:
          for name, ispkg in iter_importer_modules(i, prefix):
              if name not in yielded:
                  yielded[name] = 1
                  yield i, name, ispkg
docs: Yields (module_loader, name, ispkg) for all submodules on path,
      or, if path is None, all top-level modules on sys.path.
  
      'path' should be either None or a list of paths to look for
      modules in.
  
      'prefix' is a string to output on the front of every module name
      on output.