So, you need to add some docs for code that we've already written. You've come to the right place!
- There are two common "setup" scenarios:
No mater where you start, there are some :ref:`common enhancements<tweaking_conf_file>` to improve the generated output.
In a nutshell, we use Sphinx with documentation placed in the
docs
directory off the root of the project.
Make sure Sphinx is installed on your machine (it shouldn't be in your project's virtual environment). From the top level project directory, run:
sphinx-apidoc -F -A "RelEng Team" -V "0.1" -o docs $python_module_name
If you happen to have an early stage project, without a python module
directory yet, GOOD FOR YOU!!! You'll just do the normal
sphinx-quickstart
. Please keep the defaults, except for 'autodoc'
and 'viewcode' (say 'Y'/Yes to both):
sphinx-quickstart docs
No matter which way you add Sphinx, don't forget to add docs/_build
to the project's .hgignore
or .gitignore
file.
The following command should maintain you existing docs, while adding the generated code documentation. From the top directory:
sphinx-apidoc -o docs $python_module_name
This will produce a file modules.rst
which you'll need to manually
add into your existing index.rst
file.
After you've added generated documentation to your Sphinx project,
you'll also need to tweak the generated docs/conf.py
file needs a
couple of edits to work properly. Around line 21, add the following
lines:
sys.path.insert(0, os.path.abspath('..')) import mock MOCK_MODULES = [] for mod_name in MOCK_MODULES: sys.modules[mod_name] = mock.Mock()
The first line ensures the module under development is found. The remaining lines are a handy framework for satisfying import requirements for your module.
Note
If you want to import the real code during document generation, you'll need to add it to the read-the-docs requirements file, if it isn't already in your project's requirements.txt file..