python
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| python [2017/01/03 17:03] – francois | python [2019/09/10 14:52] (Version actuelle) – francois | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ==== Development Environment and librairies ==== | + | ====== Development Environment and librairies ====== |
| + | ===== Eclipse ===== | ||
| + | * pydev | ||
| + | * mylin | ||
| + | |||
| + | ===== Modules ===== | ||
| Please here after the typical list of addition packages I'm using.\\ | Please here after the typical list of addition packages I'm using.\\ | ||
| Most of same are compliant with **pip** download installation mode:\\ | Most of same are compliant with **pip** download installation mode:\\ | ||
| Ligne 12: | Ligne 18: | ||
| * lxml (see below for installation) | * lxml (see below for installation) | ||
| * pywin32 (see below fo installation) | * pywin32 (see below fo installation) | ||
| + | * unidecode (pylib) | ||
| === lxml installation instructions === | === lxml installation instructions === | ||
| Ligne 35: | Ligne 42: | ||
| * Run the following command from source directory: | * Run the following command from source directory: | ||
| * If your experimented the following issue\\ | * If your experimented the following issue\\ | ||
| - | '' | + | |
| - | '' | + | > python setup3.pl install |
| - | '' | + | |
| - | '' | + | Executing... |
| - | '' | + | Building pywin32 3.6.220.0 |
| - | '' | + | Traceback (most recent call last): |
| - | '' | + | File " |
| - | '' | + | exec(str(got)) |
| - | '' | + | File "< |
| - | '' | + | File "< |
| - | '' | + | File " |
| - | \\ | + | path = os.fspath(path) |
| - | Setup.py is looking for SDK, set the MsSdk environment variable | + | TypeError: expected str, bytes or os.PathLike object, not NoneType |
| + | |||
| + | |||
| + | Setup.py is looking for Visual Studio | ||
| * Search for windows.h in c:\Program Files (x86)\Microsoft SDKs | * Search for windows.h in c:\Program Files (x86)\Microsoft SDKs | ||
| * '' | * '' | ||
| + | * Run ' | ||
| - | * Run ' | + | * For a full installation process inclusing COM components do to same configuration |
| - | remove the '' | + | |
| - | | + | SET PYTHONDIR=C: |
| - | + | SET PATH=%PYTHONDIR%; | |
| - | # SET PYTHONDIR=C: | + | |
| - | | + | |
| # CD %PYTHONDIR%\pywin32-220 | # CD %PYTHONDIR%\pywin32-220 | ||
| # SET MSSdk=c: | # SET MSSdk=c: | ||
| Ligne 63: | Ligne 71: | ||
| # python setup3.py -q install | # python setup3.py -q install | ||
| - | ==== Fundamental | + | ====== Development |
| - | == RUL_GEN_001 Comments | + | ===== Fundamental Rules ===== |
| - | A comment is there to explain the code not to rephrase it.\\ | + | |
| - | Comment shall not contradict the code, update the comment with the code. | + | |
| - | == RUL_GEN_002 | + | == RUL_GEN_001 |
| <note tip> | <note tip> | ||
| If you don't understand why you should not modify a line, **DON' | If you don't understand why you should not modify a line, **DON' | ||
| </ | </ | ||
| - | == RUL_GEN_003 | + | |
| + | == RUL_GEN_002 | ||
| Don't modify a line just to make it nicer, better, what ever justification you want, until there is a declared issue or an enhancement or task assigned to you linked with the line. | Don't modify a line just to make it nicer, better, what ever justification you want, until there is a declared issue or an enhancement or task assigned to you linked with the line. | ||
| - | == RUL_GEN_004 | + | == RUL_GEN_004 |
| <note warning> | <note warning> | ||
| **In any case, Keep it simple** | **In any case, Keep it simple** | ||
| </ | </ | ||
| - | ===== Coding Rules ===== | + | == RUL_GEN_005 Guru rule== |
| - | == RUL_COD_001 == | + | Do what I say, Don't do what I do. |
| + | |||
| + | ===== Comment Rules ===== | ||
| + | |||
| + | == RUL_CMT_001 Comments == | ||
| + | A comment is there to explain the code not to rephrase it.\\ | ||
| + | Comment shall not contradict the code, update the comment with the code. | ||
| + | |||
| + | == RUL_CMT_002 Doc Strings == | ||
| + | Always use DocStrings for Files, Class and functions comment block.\\ | ||
| + | |||
| + | == RUL_CMT_004 DocString is for users == | ||
| + | DocString section is for user of the element not for developper/ | ||
| + | |||
| + | == RUL_CMT_003 Maintainer comments == | ||
| + | Use standard comment immediatly of SocString section for developper/ | ||
| + | |||
| + | ===== Coding Rules ===== | ||
| + | == RUL_COD_001 | ||
| + | Python 3.7 is the preferred Python version. If Python2 is required use Python 2.7.< | ||
| + | |||
| + | |||
| + | == RUL_COD_002 | ||
| Follow the Python development guidelines described in [[https:// | Follow the Python development guidelines described in [[https:// | ||
| - | ==== Edition Rule ==== | + | == RUL_COD_003 |
| + | Use Pylint to check to compliance of your code **AND FIX ALL WARNINGS**.\\ Justification is required when you disable a checker. | ||
| - | == ADV_GEN_005 Tab is not space== | ||
| - | Configure your editor to replace tab by 4 spaces (4). If your editor is not enable to replace don't insert TAB. | ||
| - | == RUL_GEN_006 Indentation == | ||
| - | Always use 4 space indentation except for arguments indentation | ||
| + | ==== Edition Rule ==== | ||
| + | |||
| + | == RUL_WRI_001 Tab is not space== | ||
| + | Configure your editor to replace TAB character by **4 spaces**. If your editor is not enable to replace automatically, | ||
| + | |||
| + | == RUL_WRI_002 : UTF-8 (deprecated as default in Python3) == | ||
| + | Make sure your environment is configured to use only ' | ||
| + | # -- coding: | ||
| + | |||
| + | == RUL_WRI_003 : Activate future features (Python2 only) == | ||
| + | |||
| + | Make your Python2 code compliant with Python3 by inserting at least : (from [[https:// | ||
| + | |||
| + | from __future__ import absolute_import | ||
| + | from __future__ import division | ||
| + | from __future__ import print_function | ||
| + | from __future__ import unicode_literals | ||
| + | | ||
| + | from builtins import * | ||
| + | | ||
| + | from future import standard_library | ||
| + | standard_library.install_aliases() | ||
| + | |||
| + | | ||
| + | == RUL_WRI_004 Indentation == | ||
| + | Always use **4 spaces** indentation except for function arguments indentation.(see PEP008) | ||
| + | |||
| + | ==== Strings ==== | ||
| + | |||
| + | == RUL_STR_01 bytes storage (was: str usage) == | ||
| + | Python2: Use '' | ||
| + | Python3: Use only '' | ||
| - | === Strings === | ||
| - | == RUL_STR_01 str usage == | ||
| - | Use '' | ||
| == RUL_STR_002 QString usage == | == RUL_STR_002 QString usage == | ||
| + | |||
| Use '' | Use '' | ||
| + | |||
| == RUL_STR_003 Use unicode == | == RUL_STR_003 Use unicode == | ||
| + | |||
| For all other strings use '' | For all other strings use '' | ||
| === Classes === | === Classes === | ||
| + | == RUL_CLS_001 Forget old-style class == | ||
| + | |||
| + | Python 2: Any class MUST inherit directly or indirectly from ``object``. | ||
| + | |||
| + | == RUL_CLS_002 == | ||
| + | |||
| + | Use ``self`` to identify instance parameter and ``cls`` for class related parameter. | ||
| + | |||
| + | == RUL_CLS_003 == | ||
| + | |||
| + | |||
python.1483462983.txt.gz · Dernière modification : 2017/01/03 17:03 de francois