docs: def get_modules(modulepath):
      """return all found modules at modulepath (eg, foo.bar) including modulepath module"""
      m = importlib.import_module(modulepath)
      mpath = m.__file__
      ret = set([m])
  
      if "__init__." in mpath.lower():
          mpath = os.path.dirname(mpath)
  
          # https://docs.python.org/2/library/pkgutil.html#pkgutil.iter_modules
          for module_info in pkgutil.iter_modules([mpath]):
              submodulepath = ".".join([modulepath, module_info[1]])
              if module_info[2]:
                  # module is a package
                  submodules = get_modules(submodulepath)
                  ret.update(submodules)
              else:
                  ret.add(importlib.import_module(submodulepath))
  
      return ret