code: def setup(app):
      # type: (Sphinx) -> Dict[unicode, Any]
      """
      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
  
      See Also
      --------
      `The Sphinx documentation on Extensions
      <http://sphinx-doc.org/extensions.html>`_
      `The Extension Tutorial <http://sphinx-doc.org/extdev/tutorial.html>`_
      `The Extension API <http://sphinx-doc.org/extdev/appapi.html>`_
  
      """
      from sphinx.application import Sphinx
  
      if not isinstance(app, Sphinx):
          # probably called by tests
          return {"version": __version__, "parallel_read_safe": True}
  
      _patch_python_domain()
  
      app.setup_extension("sphinx.ext.autodoc")
      app.connect("autodoc-process-docstring", _process_docstring)
      app.connect("autodoc-skip-member", _skip_member)
  
      for name, (default, rebuild) in Config._config_values.items():
          app.add_config_value(name, default, rebuild)
      return {"version": __version__, "parallel_read_safe": True}
  
file_path: nipype/nipype/sphinxext/apidoc/__init__.py
imports: import re
  from sphinx.ext.napoleon import Config, _patch_python_domain, _skip_member
  from ...None import __version__
  from ...interfaces.base import BaseInterface, TraitedSpec
  from .docstring import NipypeDocstring, InterfaceDocstring
label_desc: Use image node_id 1 for calling a global function with example usage: setup(app) and returns: dict, dict