Coding conventions

The PyInstaller project follows the PEP 8 Style Guide for Python Code for new code. It uses yapf to do the bulk of the formatting (mostly putting spaces in the correct places) automatically and flake8 to validate PEP 8 rules which yapf doesn’t cover.

Before submitting changes to PyInstaller, please check your code with both tools.

To install them run:

pip install flake8 yapf==0.31.0 toml

Reformat your code automatically with yapf:

yapf -rip .

Then manually adjust your code based on any suggestions given by flake8:

git diff -U0 last-commit-id-which-you-did-not-write -- | flake8 --diff -

Please abstain from reformatting existing code, even it it doesn’t follow PEP 8. We will not accept reformatting changes since they make it harder to review the changes and to follow changes in the long run. For a complete rationale please see #2727.