blob: 86b593ecd30b295bad8d8f431869227969578c3b [file] [view]
# Coding style
For Markdown, use the [Google
style](https://github.com/google/styleguide/blob/gh-pages/docguide/style.md).
## General style
* ALL_CAPS_GLOBALS at top
* function_name
* ClassName
* variable_name
* +2 space indent, a legacy from Google
* 2 empty lines between file level symbols
* 1 empty line between class members
## Line breaks
Keep line width under 80 chars. Break a line on a first syntactic structure,
prefer hanging indent of 4 spaces over vertical alignment. Prefer parentheses
for line joining over `\`. For JSON-like nested dicts and lists it's acceptable
to use 2 space indent.
Yes:
str = (
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam diam met, '
'tristique ac placerat sit amet: %s, %s' % (a, b))
func_call(
param1=...,
param2=...,
param3=...)
like_json = {
'key': {
'a': {
'b': 123,
'c': 123,
'd': 123,
},
},
}
No:
str = \
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam diam met, '
str = ('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam diam '
'met, ....')
func_call(param1=...,
param2=...,
param3=...)
fun_call(param1=..., param2=...,
param3=...)
## Import statements
* import modules, not symbols.
* `from X import Y` statements, then `import X` statements within a single block
Separations:
<import block of stdlib>
<import block of import sys.path hack, e.g. test_env. Needed for now>
<import block of appengine lib>
<import block of appengine third_party lib, e.g. webapp2, or in third_party/>
<import block of components and other application external libs>
<import block of application libs>