docs: def setup(app):
      """Sphinx extension setup function
  
      When the extension is loaded, Sphinx imports this module and executes
      the ``setup()`` function, which in turn notifies Sphinx of everything
      the extension offers.
  
      Parameters
      ----------
      app : sphinx.application.Sphinx
          Application object representing the Sphinx process
  
      Notes
      -----
      This function uses the setup function of the :mod:`sphinx.ext.napoleon`
      module"""
      from sphinx.application import Sphinx
      if not isinstance(app, Sphinx):
          return  # probably called by tests
  
      app.connect('autodoc-process-docstring', process_docstring)
      return napoleon_setup(app)