Commits

Georg Brandl committed 00e4412

Add warnings that autodoc imports the modules.

  • Participants
  • Parent commits f2d3e28
  • Branches stable

Comments (0)

Files changed (4)

File doc/ext/autodoc.rst

    package must be in one of the directories on :data:`sys.path` -- adapt your
    :data:`sys.path` in the configuration file accordingly.
 
+.. warning::
+
+   :mod:`~sphinx.ext.autodoc` **imports** the modules to be documented.  If any
+   modules have side effects on import, these will be executed by ``autodoc``
+   when ``sphinx-build`` is run.
+
+   If you document scripts (as opposed to library modules), make sure their main
+   routine is protected by a ``if __name__ == '__main__'`` condition.
+
 For this to work, the docstrings must of course be written in correct
 reStructuredText.  You can then use all of the usual Sphinx markup in the
 docstrings, and it will end up correctly in the documentation.  Together with

File doc/invocation.rst

 the directory where the generated sources are placed.  Any *pathnames* given
 are paths to be excluded ignored during generation.
 
+.. warning::
+
+   ``sphinx-apidoc`` generates reST files that use :mod:`sphinx.ext.autodoc` to
+   document all found modules.  If any modules have side effects on import,
+   these will be executed by ``autodoc`` when ``sphinx-build`` is run.
+
+   If you document scripts (as opposed to library modules), make sure their main
+   routine is protected by a ``if __name__ == '__main__'`` condition.
+
+
 The :program:`sphinx-apidoc` script has several options:
 
 .. program:: sphinx-apidoc

File doc/man/sphinx-apidoc.rst

 *sourcedir* must point to a Python package.  Any *pathnames* given are paths to
 be excluded from the generation.
 
+.. warning::
+
+   ``sphinx-apidoc`` generates source files that use :mod:`sphinx.ext.autodoc`
+   to document all found modules.  If any modules have side effects on import,
+   these will be executed by ``autodoc`` when ``sphinx-build`` is run.
+
+   If you document scripts (as opposed to library modules), make sure their main
+   routine is protected by a ``if __name__ == '__main__'`` condition.
+
 
 Options
 -------
 
--o <outputdir>  Directory to place the output files.  If it does not exist,
-                it is created.
--f, --force     Usually, apidoc does not overwrite files, unless this option
-                is given.
--n, --dry-run   If given, apidoc does not create any files.
--s <suffix>     Suffix for the source files generated, default is ``rst``.
--d <maxdepth>   Maximum depth for the generated table of contents file.
--T, --no-toc    Do not create a table of contents file.
--F, --full      If given, a full Sphinx project is generated (``conf.py``,
-                ``Makefile`` etc.) using sphinx-quickstart.
--E, --separate  Put each module file in its own page.
+-o <outputdir>      Directory to place the output files.  If it does not exist,
+                    it is created.
+-f, --force         Usually, apidoc does not overwrite files, unless this option
+                    is given.
+-l, --follow-links  Follow symbolic links.
+-n, --dry-run       If given, apidoc does not create any files.
+-s <suffix>         Suffix for the source files generated, default is ``rst``.
+-d <maxdepth>       Maximum depth for the generated table of contents file.
+-T, --no-toc        Do not create a table of contents file.
+-F, --full          If given, a full Sphinx project is generated (``conf.py``,
+                    ``Makefile`` etc.) using sphinx-quickstart.
+-e, --separate      Put each module file in its own page.
+-E, --no-headings   Don't create headings for the modules/packages
+-P, --private       Include "_private" modules
 
 These options are used with ``-F``:
 

File doc/tutorial.rst

 Therefore, you must add the appropriate path to :py:data:`sys.path` in your
 :file:`conf.py`.
 
+.. warning::
+
+   :mod:`~sphinx.ext.autodoc` **imports** the modules to be documented.  If any
+   modules have side effects on import, these will be executed by ``autodoc``
+   when ``sphinx-build`` is run.
+
+   If you document scripts (as opposed to library modules), make sure their main
+   routine is protected by a ``if __name__ == '__main__'`` condition.
+
 |more| See :mod:`sphinx.ext.autodoc` for the complete description of the
 features of autodoc.