code: def init_package(package_path, package_name, docstring):
    
    module_names = get_module_names(package_path)
    modules = get_modules(package_name, module_names)
    dunder_all = dunder_all_concat(modules)
    for module in modules:
      append_summary_to_module_docstring(module)
    pairs = list(zip(module_names, modules))
    kws = dict(key_header="Module", summary_type="package modules")
    new_docstring = docstring_with_summary(docstring, pairs, **kws)
    return module_names, dunder_all, new_docstring
docs: Package initialization, to be called only by ``__init__.py``.
  
    - Find all module names;
    - Import all modules (so they're already cached on sys.modules), in
      the sorting order (this might make difference on cyclic imports);
    - Update all module docstrings (with the summary of its contents);
    - Build a module summary for the package docstring.
  
    Returns
    -------
    A 4-length tuple ``(modules, __all__, __doc__)``. The first one can be
    used by the package to import every module into the main package namespace.