This is the high level API to use to generate documentation pages for any given package(s).

        Args:
            packages (list(module)): A list of packages that contain submodules to document
            index_base (str): The index page file name. This content will be appended
            showprivate (bool): A flag for whether or not to display private members

def DocumentPackages(self, packages, index_base=None, showprivate=False,
                         notify=True, showinh=False, intro_pages=None,
                         append_material=None, extra=None):
        """This is the high level API to use to generate documentation pages for any given package(s).

        Args:
            packages (list(module)): A list of packages that contain submodules to document
            index_base (str): The index page file name. This content will be appended
            showprivate (bool): A flag for whether or not to display private members
        """
        if index_base is None:
            gram = ''
            if isinstance(packages, list) and len(packages) > 1:
                gram = 's'
                if len(packages) < 3:
                    names = ' and '.join(['``%s``' % p.__name__ for p in packages])
                else:
                    names = ['``%s``' % p.__name__ for p in packages]
                    names[-1] = ' and %s' % names[-1]
                    names = ', '.join(names)
            else:
                names = '``%s``' % packages.__name__
            index = SAMPLE_INDEX.format(names, gram)
        else:
            index = self.OpenIndex(index_base)
        app = self._DocPackageFromTop(packages, showprivate=showprivate, showinh=showinh)
        index += self._GenerateStaticsTable()
        index += """
.. toctree::
   :hidden:

   self
"""
        if intro_pages is not None:
            if isinstance(intro_pages, str):
                intro_pages = [intro_pages]
            for page in intro_pages:
                index += '   {}\n'.format(page.strip())
        index += '\n'
        if append_material is not None:
            index += append_material
        index += app

        if extra is not None:
            index += extra
        if notify:
            index += """

.. admonition:: Docs Automatically Generated
   :class: note

   `Learn more`_ about automatic documentation

.. _Learn more: https://gendocs.readthedocs.io/en/latest/

"""
        self.WriteIndex(index)
        return None