diff --git a/crates/ruff_linter/resources/test/fixtures/flake8_pyi/PYI044.pyi b/crates/ruff_linter/resources/test/fixtures/flake8_pyi/PYI044.pyi index d624ac8eae89d5..e03804ff4c3a65 100644 --- a/crates/ruff_linter/resources/test/fixtures/flake8_pyi/PYI044.pyi +++ b/crates/ruff_linter/resources/test/fixtures/flake8_pyi/PYI044.pyi @@ -1,8 +1,8 @@ # Bad import. from __future__ import annotations # PYI044. -from __future__ import annotations, OtherThing # PYI044. +from __future__ import annotations, with_statement # PYI044. # Good imports. -from __future__ import Something +from __future__ import with_statement import sys from socket import AF_INET diff --git a/crates/ruff_linter/src/rules/flake8_pyi/rules/future_annotations_in_stub.rs b/crates/ruff_linter/src/rules/flake8_pyi/rules/future_annotations_in_stub.rs index afe58dfbf2a041..c3d50ceaea391f 100644 --- a/crates/ruff_linter/src/rules/flake8_pyi/rules/future_annotations_in_stub.rs +++ b/crates/ruff_linter/src/rules/flake8_pyi/rules/future_annotations_in_stub.rs @@ -29,7 +29,7 @@ impl Violation for FutureAnnotationsInStub { } fn fix_title(&self) -> Option { - Some("Remove `annotations` import from `__future__`".to_string()) + Some("Remove `from __future__ import annotations`".to_string()) } } @@ -58,7 +58,7 @@ pub(crate) fn from_future_import(checker: &mut Checker, target: &StmtImportFrom) checker.indexer(), )?; - Ok(Fix::unsafe_edit(edit)) + Ok(Fix::safe_edit(edit)) }); } diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.pyi.snap index 4fc509140c670d..94fa6d7a63b8a1 100644 --- a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.pyi.snap +++ b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.pyi.snap @@ -6,17 +6,17 @@ PYI044.pyi:2:1: PYI044 `from __future__ import annotations` has no effect in stu 1 | # Bad import. 2 | from __future__ import annotations # PYI044. | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI044 -3 | from __future__ import annotations, OtherThing # PYI044. +3 | from __future__ import annotations, with_statement # PYI044. | - = help: Remove `annotations` import from `__future__` + = help: Remove `from __future__ import annotations` PYI044.pyi:3:1: PYI044 `from __future__ import annotations` has no effect in stub files, since type checkers automatically treat stubs as having those semantics | 1 | # Bad import. 2 | from __future__ import annotations # PYI044. -3 | from __future__ import annotations, OtherThing # PYI044. - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI044 +3 | from __future__ import annotations, with_statement # PYI044. + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI044 4 | 5 | # Good imports. | - = help: Remove `annotations` import from `__future__` + = help: Remove `from __future__ import annotations` diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview__PYI044_PYI044.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview__PYI044_PYI044.pyi.snap index 267ce9f0b30dca..5ddf8be331d38f 100644 --- a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview__PYI044_PYI044.pyi.snap +++ b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview__PYI044_PYI044.pyi.snap @@ -6,14 +6,14 @@ PYI044.pyi:2:1: PYI044 [*] `from __future__ import annotations` has no effect in 1 | # Bad import. 2 | from __future__ import annotations # PYI044. | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI044 -3 | from __future__ import annotations, OtherThing # PYI044. +3 | from __future__ import annotations, with_statement # PYI044. | - = help: Remove `annotations` import from `__future__` + = help: Remove `from __future__ import annotations` -ℹ Unsafe fix +ℹ Safe fix 1 1 | # Bad import. 2 |-from __future__ import annotations # PYI044. -3 2 | from __future__ import annotations, OtherThing # PYI044. +3 2 | from __future__ import annotations, with_statement # PYI044. 4 3 | 5 4 | # Good imports. @@ -21,18 +21,18 @@ PYI044.pyi:3:1: PYI044 [*] `from __future__ import annotations` has no effect in | 1 | # Bad import. 2 | from __future__ import annotations # PYI044. -3 | from __future__ import annotations, OtherThing # PYI044. - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI044 +3 | from __future__ import annotations, with_statement # PYI044. + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI044 4 | 5 | # Good imports. | - = help: Remove `annotations` import from `__future__` + = help: Remove `from __future__ import annotations` -ℹ Unsafe fix +ℹ Safe fix 1 1 | # Bad import. 2 2 | from __future__ import annotations # PYI044. -3 |-from __future__ import annotations, OtherThing # PYI044. - 3 |+from __future__ import OtherThing # PYI044. +3 |-from __future__ import annotations, with_statement # PYI044. + 3 |+from __future__ import with_statement # PYI044. 4 4 | 5 5 | # Good imports. -6 6 | from __future__ import Something +6 6 | from __future__ import with_statement