Gorka Eguileor a8edbd2e8d Improve api_version decorator to avoid noqa
Our existing `api_version` decorator for microversions forces us to use
"# noqa" if we have multiple microversions of a method in the same
class, providing no way around this.

This patch adds a way to avoid using noqa directive.  Previously we
would have:

 @wsgi.Controller.api_version("3.3")
 def my_api_method(self, req, id):
     .... method_1 ...

 @wsgi.Controller.api_version("3.4")  # noqa
 def my_api_method(self, req, id):
     .... method_2 ...

With this patch the second method does not require noqa anymore:

 @my_api_method.api_version("3.4")
 def my_api_method(self, req, id):
     .... method_2 ...

Devref is updated to reflect this new change and to mention that it is
the recommended way to do it.

Change-Id: I46283b52cc6a347d5deb0f57a123eba4e01a3eb2
Closes-Bug: #1599806
2016-07-22 10:27:26 +02:00
..
2012-05-03 10:48:26 -07:00
2012-05-03 10:48:26 -07:00

Building the docs

Dependencies

Sphinx

You'll need sphinx (the python one) and if you are using the virtualenv you'll need to install it in the virtualenv specifically so that it can load the cinder modules.

pip install Sphinx
Graphviz

Some of the diagrams are generated using the dot language from Graphviz.

sudo apt-get install graphviz

Use make

Just type make:

% make

Look in the Makefile for more targets.

Manually

  1. Generate the code.rst file so that Sphinx will pull in our docstrings:

    % ./generate_autodoc_index.sh > source/code.rst
  2. Run `sphinx_build`:

    % sphinx-build -b html source build/html

Use tox

The easiest way to build the docs and avoid dealing with all dependencies is to let tox prepare a virtualenv and run the build_sphinx target inside the virtualenv:

% cd ..
% tox -e docs

The docs have been built

Check out the build directory to find them. Yay!