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 ruff 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 ruff toml yapf==0.32.0

Reformat your code automatically with yapf:

yapf -rip .

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

ruff --fix .

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.