Formatting code¶
The PTB automatically formats code and ensures via a step in the checks.yml
GitHub
workflow that committed code adheres to these standards. The goals of this are to
improve the readability and maintainability of the code and to provide a uniform
experience across projects.
Nox sessions¶
For autoformatting, the following tools are used:
black - formats Python code to maintain consistent styling standards.
isort - organizes and formats Python import statements alphabetically and by type (from __future__, standard library packages, third party packages, and local application imports).
pyupgrade - upgrades syntax for newer versions of the Python language.
In the PTB, these tools are bundled into nox sessions to ensure that they are run in a deterministic manner.
Nox session |
CI Usage |
Action |
---|---|---|
|
No |
Applies code formatting changes |
|
|
Checks that current code does not need to be re-formatted |
Configuration¶
black¶
Your black
configuration should look similar to this:
[tool.black]
line-length = 88
verbose = false
include = "\\.pyi?$"
For further configuration options, see black configuration.
isort¶
Ensure isort
is configured with compatibility for black
:
[tool.isort]
profile = "black"
force_grid_wrap = 2
For further configuration options, see isort options.
pyupgrade¶
No initial configuration of pyupgrade
is required.
For individual configuration, see the
pyupgrade CLI options. These can
be passed to the Nox sessions via the pyupgrade_args
attribute of the noxconfig.Config
.