FEM: codeformating, add a file with some information

This commit is contained in:
Bernd Hahnebach
2019-07-02 08:10:06 +02:00
parent c57cc84e0f
commit ef558a8d25
2 changed files with 36 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ endif(BUILD_GUI)
# Python non Gui packages and modules
SET(FemScripts_SRCS
codeformating.md
Init.py
InitGui.py
ObjectsFem.py

View File

@@ -0,0 +1,35 @@
# FEM coding rules
## Python and C++
- All files should have a licence header
- Unix line endings are preferend
- never use mixed line endings on one file
- 4 Spaces for indent
- no trailing white spaces
## Python
#### Code formating
- except W503 all Python code is pep8 compliant
- maximal line length is 100
- double quotes as string identifier
- One import per line, no * imports allowed as it makes harder to validate code
- the import of FreeCADGui should be guarded by a "if FreeCAD.GuiUp:"
### Naming policy
- snake_case_names
- ClassNames, variable_names_without_capitals and CONSTANTS_USE_CAPITALS, functions_without_capitals
- Function expected to return a value should indicate what is expected, so is_mesh_valid is a good name, but check_mesh is not a good name
- Class names and file names that are not supposed to be used for scripting should start with underscore like _MyInternalClass
### Python code formating tools
- flake8
- in source code directory on Linux shell
find src/Mod/Fem/ -name "*\.py" | grep -v InitGui.py | xargs -I [] flake8 --ignore=E266,W503 --max-line-length=100 []
- www.lgtm.com
- TODO: check pylint
- automatic code formater will not be used for existant code
- for new code if someone would like to use a code formater black should be used
## C++
### Naming policy
- CamelCase names