blob: f33f291d6a071f56716bb8222afb5e2a79b97868 [file] [log] [blame] [view]
Using isort with pre-commit
========
isort provides official support for [pre-commit](https://pre-commit.com/).
### isort pre-commit step
To use isort's official pre-commit integration add the following config:
```yaml
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
name: isort (python)
```
under the `repos` section of your projects `.pre-commit-config.yaml` file. Optionally if you want to have different hooks
over different file types (ex: python vs cython vs pyi) you can do so with the following config:
```yaml
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
name: isort (python)
- id: isort
name: isort (cython)
types: [cython]
- id: isort
name: isort (pyi)
types: [pyi]
```
### seed-isort-config
Older versions of isort used a lot of magic to determine import placement, that could easily break when running on CI/CD.
To fix this, a utility called `seed-isort-config` was created. Since isort 5 however, the project has drastically improved its placement
logic and ensured a good level of consistency across environments.
If you have a step in your pre-commit config called `seed-isort-config` or similar, it is highly recommend that you remove this.
It is guaranteed to slow things down, and can conflict with isort's own module placement logic.