Skip to content

Add isort pre-commit hook and configuration to all repos

Sorting Python imports manually is quite cumbersome so we should use the isort tool to handle that process and get consistent imports ordering across all swh modules.

As an example, swh-web!404 (closed) adds a new pre-commit hook in swh-web to call isort when committing with a configuration compatible with black formatter.

That task is here to define the isort configuration that will be used in all modules. Proposed one is the following:

[tool.isort]
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
line_length = 88
force_sort_within_sections = true

Basically it corresponds to the recommended settings when using black plus the addition of force_sort_within_sections = true (which sorts from x import y before import z instead of grouping from imports together at the bottom)

More options are available here.


Migrated from T2610 (view on Phabricator)