parent
e4a25abcfb
commit
66ae19c256
@ -1,96 +0,0 @@
|
|||||||
Coding Guidelines
|
|
||||||
=================
|
|
||||||
|
|
||||||
Generally
|
|
||||||
---------
|
|
||||||
|
|
||||||
Use use regular coding style:
|
|
||||||
http://www.python.org/dev/peps/pep-0008/
|
|
||||||
http://google-styleguide.googlecode.com/
|
|
||||||
|
|
||||||
One can break those rules if the situation requires it. Keep it contained.
|
|
||||||
|
|
||||||
|
|
||||||
Some specific rules for this package :
|
|
||||||
|
|
||||||
Git
|
|
||||||
---
|
|
||||||
|
|
||||||
This project use git-flow {nvie.com/posts/a-successful-git-branching-model}
|
|
||||||
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.
|
|
||||||
3. 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.
|
|
||||||
5. in 'feat/' branches, you do whatever you want.
|
|
||||||
6. when developping a new feature, write tests for it.
|
|
||||||
|
|
||||||
|
|
||||||
Alignement
|
|
||||||
----------
|
|
||||||
|
|
||||||
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,
|
|
||||||
edit and debug takes precedence over proper spacing.
|
|
||||||
|
|
||||||
|
|
||||||
Strings
|
|
||||||
-------
|
|
||||||
|
|
||||||
For literals strings, ' is preferred to ", but use " when the string contains '.
|
|
||||||
|
|
||||||
- yes: "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.
|
|
||||||
Don't mix and match.
|
|
||||||
|
|
||||||
- yes: s = color + s + end
|
|
||||||
- yes: '{}: file {} could not be read'.format(errorname, filepath)
|
|
||||||
- no : errorname + ': file {} could not be read'.format(filepath)
|
|
||||||
|
|
||||||
|
|
||||||
Names
|
|
||||||
-----
|
|
||||||
|
|
||||||
Avoid at all cost to name a variable like a module from the package, a
|
|
||||||
dependency or the standart lib.
|
|
||||||
This breaks coherence across the code, makes it harder to read.
|
|
||||||
Change either the module or variable name.
|
|
||||||
|
|
||||||
|
|
||||||
Function that have only local uses should be preceded by an underscore.
|
|
||||||
|
|
||||||
- yes:
|
|
||||||
|
|
||||||
def _auxiliary_local_fun():
|
|
||||||
pass
|
|
||||||
|
|
||||||
- no:
|
|
||||||
|
|
||||||
def auxiliary_local_fun():
|
|
||||||
pass
|
|
||||||
|
|
||||||
These functiona won't be imported automatically with the module.
|
|
||||||
It keeps the interface clean, makes occasional hacks explicit, and inform other
|
|
||||||
developers that theses functions may need special care when uses outside their
|
|
||||||
natural habitat.
|
|
||||||
|
|
||||||
|
|
||||||
Files
|
|
||||||
-----
|
|
||||||
|
|
||||||
Unless you have a good reason, use 'open' as such :
|
|
||||||
|
|
||||||
- yes:
|
|
||||||
|
|
||||||
with open(path, 'w') as f:
|
|
||||||
f.read()
|
|
||||||
|
|
||||||
- no:
|
|
||||||
|
|
||||||
f = open(path, 'r')
|
|
||||||
f.read()
|
|
||||||
f.close()
|
|
Loading…
Reference in new issue