@ -1,5 +1,8 @@
Coding Guidelines
=================
Generally
Generally
=========
---------
Use use regular coding style:
Use use regular coding style:
http://www.python.org/dev/peps/pep-0008/
http://www.python.org/dev/peps/pep-0008/
@ -11,20 +14,21 @@ One can break those rules if the situation requires it. Keep it contained.
Some specific rules for this package :
Some specific rules for this package :
Git
Git
===
---
This project use git-flow {nvie.com/posts/a-successful-git-branching-model}
This project use git-flow {nvie.com/posts/a-successful-git-branching-model}
as a model for branches management. In particular :
as a model for branches management. In particular :
1. master is for release only
2. when you commit to develop, run nosetests before. All tests should pass.
1. master is for release only
3. when you commit to develop, run nosetests before. All tests should pass.
2. when you commit to develop, run nosetests before. All tests should pass.
4. when you commit to develop, run nosetests before. All tests should pass.
3. when you commit to develop, run nosetests before. All tests should pass.
5. in 'feat/' branches, you do whatever you want.
4. when you commit to develop, run nosetests before. All tests should pass.
6. when developping a new feature, write tests for it.
5. in 'feat/' branches, you do whatever you want.
6. when developping a new feature, write tests for it.
Alignement
Alignement
==========
----------
We strive for code clarity first, and then conformance to pep-8.
We strive for code clarity first, and then conformance to pep-8.
As such, any code alignement that make the code clearer, easier to use,
As such, any code alignement that make the code clearer, easier to use,
@ -32,24 +36,24 @@ edit and debug takes precedence over proper spacing.
Strings
Strings
=======
-------
For literals strings, ' is preferred to ", but use " when the string contains '.
For literals strings, ' is preferred to ", but use " when the string contains '.
yes: "run the command 'flake8' before committing"
- yes: "run the command 'flake8' before committing"
no : 'run the command \'flake8\' before committing'
- no : 'run the command \'flake8\' before committing'
Use '.format' syntax for strings, and '+' only when the use calls it.
Use '.format' syntax for strings, and '+' only when the use calls it.
Don't mix and match.
Don't mix and match.
yes: s = color + s + end
- yes: s = color + s + end
yes: '{}: file {} could not be read'.format(errorname, filepath)
- yes: '{}: file {} could not be read'.format(errorname, filepath)
no : errorname + ': file {} could not be read'.format(filepath)
- no : errorname + ': file {} could not be read'.format(filepath)
Names
Names
=====
-----
Avoid at all cost to name a variable like a module from the package, a
Avoid at all cost to name a variable like a module from the package, a
dependency or the standart lib.
dependency or the standart lib.
@ -59,10 +63,15 @@ Change either the module or variable name.
Function that have only local uses should be preceded by an underscore.
Function that have only local uses should be preceded by an underscore.
yes: def _auxiliary_local_fun():
- yes:
pass
no : def auxiliary_local_fun():
def _auxiliary_local_fun():
pass
pass
- no:
def auxiliary_local_fun():
pass
These functiona won't be imported automatically with the module.
These functiona won't be imported automatically with the module.
It keeps the interface clean, makes occasional hacks explicit, and inform other
It keeps the interface clean, makes occasional hacks explicit, and inform other
@ -71,11 +80,17 @@ natural habitat.
Files
Files
=====
-----
Unless you have a good reason, use 'open' as such :
Unless you have a good reason, use 'open' as such :
yes: with open(path, 'w') as f:
f.read()
- yes:
no : f = open(path, 'r')
f.read()
with open(path, 'w') as f:
f.close()
f.read()
- no:
f = open(path, 'r')
f.read()
f.close()