69 lines
2.0 KiB
Plaintext
69 lines
2.0 KiB
Plaintext
Nova Style Commandments
|
|
=======================
|
|
|
|
Step 1: Read http://www.python.org/dev/peps/pep-0008/
|
|
Step 2: Read http://www.python.org/dev/peps/pep-0008/ again
|
|
Step 3: Read on
|
|
|
|
Imports
|
|
-------
|
|
- thou shalt not import objects, only modules
|
|
- thou shalt not import more than one module per line
|
|
- thou shalt not make relative imports
|
|
- thou shalt organize your imports according to the following template
|
|
|
|
::
|
|
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
{{stdlib imports in human alphabetical order}}
|
|
\n
|
|
{{nova imports in human alphabetical order}}
|
|
\n
|
|
\n
|
|
{{begin your code}}
|
|
|
|
|
|
General
|
|
-------
|
|
- thou shalt put two newlines twixt toplevel code (funcs, classes, etc)
|
|
- thou shalt put one newline twixt methods in classes and anywhere else
|
|
- thou shalt not write "except:", use "except Exception:" at the very least
|
|
- thou shalt include your name with TODOs as in "TODO(termie)"
|
|
- thou shalt not name anything the same name as a builtin or reserved word
|
|
- thou shalt not violate causality in our time cone, or else
|
|
|
|
|
|
Human Alphabetical Order Examples
|
|
---------------------------------
|
|
::
|
|
import httplib
|
|
import logging
|
|
import random
|
|
import StringIO
|
|
import time
|
|
import unittest
|
|
|
|
from nova import flags
|
|
from nova import test
|
|
from nova.auth import users
|
|
from nova.endpoint import api
|
|
from nova.endpoint import cloud
|
|
|
|
Docstrings
|
|
----------
|
|
"""Summary of the function, class or method, less than 80 characters.
|
|
|
|
New paragraph after newline that explains in more detail any general
|
|
information about the function, class or method. After this, if defining
|
|
parameters and return types use the Sphinx format. After that an extra
|
|
newline then close the quotations.
|
|
|
|
When writing the docstring for a class, an extra line should be placed
|
|
after the closing quotations. For more in-depth explanations for these
|
|
decisions see http://www.python.org/dev/peps/pep-0257/
|
|
|
|
:param foo: the foo parameter
|
|
:param bar: the bar parameter
|
|
:returns: description of the return value
|
|
|
|
"""
|