Skip to content

Discrepancies between isort and Ruff's I lint check #1718

@AA-Turner

Description

@AA-Turner

It seems Ruff expects a space after isort:skip (i.e. Ruff wants isort: skip), and Ruff seems to ignore F401 for the purposes of import sorting, whereas isort honours them as skip markers(?).

Ruff also reports 1 error in the initial call, yet the --diff call reports three errors.

Ruff version 213; isort version 5.11.4

Sample file:

(sphinx) PS I:\Development\sphinx> type bug.py            
from operator import add  # noqa: F401
from operator import sub  # noqa: F401

from math import pi  # noqa: F401  isort:skip
from math import e  # noqa: F401  isort:skip

from string import (  # noqa: E402  # isort:skip
    ascii_lowercase
)

from pprint import pprint  # isort:skip
(sphinx) PS I:\Development\sphinx> isort bug.py           
(sphinx) PS I:\Development\sphinx> ruff bug.py --select I
bug.py:1:1: I001 Import block is un-sorted or un-formatted
Found 1 error(s).
1 potentially fixable with the --fix option.
(sphinx) PS I:\Development\sphinx> ruff bug.py --diff    
--- bug.py
+++ bug.py
@@ -1,11 +1,8 @@
-from operator import add  # noqa: F401
-from operator import sub  # noqa: F401
-
-from math import pi  # noqa: F401  isort:skip
-from math import e  # noqa: F401  isort:skip
-
-from string import (  # noqa: E402  # isort:skip
-    ascii_lowercase
+from math import (
+    e,  # noqa: F401  isort:skip
+    pi,  # noqa: F401  isort:skip
+)
+from operator import (
+    add,  # noqa: F401
+    sub,  # noqa: F401
 )
-
-from pprint import pprint  # isort:skip

Would fix 3 error(s).
(sphinx) PS I:\Development\sphinx> ruff -V           
ruff 0.0.213
(sphinx) PS I:\Development\sphinx> 

A

Metadata

Metadata

Assignees

No one assigned

    Labels

    isortRelated to import sorting

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions