svn merge -r40034:40051 https://svn.blender.org/svnroot/bf-blender/trunk/blender
[blender.git] / doc / python_api / rst / info_best_practice.rst
1 *************
2 Best Practice
3 *************
4
5
6 TODO: Intro text
7
8
9 Style Conventions
10 =================
11
12 For Blender 2.5 we have chosen to follow python suggested style guide to avoid mixing styles amongst our own scripts and make it easier to use python scripts from other projects.
13
14 Using our style guide for your own scripts makes it easier if you eventually want to contribute them to blender.
15
16 This style guide is known as pep8 and can be found `here <http://www.python.org/dev/peps/pep-0008>`_
17
18 A brief listing of pep8 criteria.
19
20 * camel caps for class names: MyClass
21
22 * all lower case underscore separated module names: my_module
23
24 * indentation of 4 spaces (no tabs)
25
26 * spaces around operators. ``1 + 1``, not ``1+1``
27
28 * only use explicit imports, (no importing '*')
29
30 * don't use single line: ``if val: body``, separate onto 2 lines instead.
31
32
33 As well as pep8 we have other conventions used for blender python scripts.
34
35 * Use single quotes for enums, and double quotes for strings.
36
37   Both are of course strings but in our internal API enums are unique items from a limited set. eg.
38
39   .. code-block:: python
40
41      bpy.context.scene.render.file_format = 'PNG'
42      bpy.context.scene.render.filepath = "//render_out"
43
44 * pep8 also defines that lines should not exceed 79 characters, we felt this is too restrictive so this is optional per script.
45
46 Periodically we run checks for pep8 compliance on blender scripts, for scripts to be included in this check add this line as a comment at the top of the script.
47
48 ``# <pep8 compliant>``
49
50 To enable line length checks use this instead.
51
52 ``# <pep8-80 compliant>``
53
54
55 User Interface Layout
56 =====================
57
58 TODO: Thomas
59
60
61 Script Efficiency
62 =================
63
64 TODO: Campbell
65