54 lines
1.5 KiB
Plaintext
54 lines
1.5 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 "from nova import vendor" before importing third party code
|
|
- thou shalt organize your imports according to the following template
|
|
|
|
::
|
|
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
{{stdlib imports in human alphabetical order}}
|
|
\n
|
|
from nova import vendor
|
|
{{vendor 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
|