docs: def gen_submodule_names(package):
      """Walk package and yield names of all submodules
  
      :type  package: package
      :param package: The package to get submodule names of
      :returns: Iterator that yields names of all submodules of ``package``
      :rtype: Iterator that yields ``str``
      """
      for importer, modname, ispkg in pkgutil.walk_packages(
          path=package.__path__,
          prefix=package.__name__ + '.',
              onerror=lambda x: None):
          yield modname