diff --git a/crates/ruff/resources/test/fixtures/flake8_tidy_imports/TID251.py b/crates/ruff/resources/test/fixtures/flake8_tidy_imports/TID251.py index 76146cde5308a..2b28e259a8bd2 100644 --- a/crates/ruff/resources/test/fixtures/flake8_tidy_imports/TID251.py +++ b/crates/ruff/resources/test/fixtures/flake8_tidy_imports/TID251.py @@ -31,3 +31,6 @@ # import aliases are resolved import typing as totally_not_typing totally_not_typing.TypedDict + +# relative imports are respected +from .typing import TypedDict diff --git a/crates/ruff/src/checkers/ast/mod.rs b/crates/ruff/src/checkers/ast/mod.rs index a5588c4218595..fc6692286b5a1 100644 --- a/crates/ruff/src/checkers/ast/mod.rs +++ b/crates/ruff/src/checkers/ast/mod.rs @@ -1155,13 +1155,15 @@ where } if self.settings.rules.enabled(Rule::BannedApi) { - if let Some(module) = module { - for name in names { - flake8_tidy_imports::banned_api::name_is_banned(self, module, name); + if level.map_or(true, |level| level == 0) { + if let Some(module) = module { + for name in names { + flake8_tidy_imports::banned_api::name_is_banned(self, module, name); + } + flake8_tidy_imports::banned_api::name_or_parent_is_banned( + self, module, stmt, + ); } - flake8_tidy_imports::banned_api::name_or_parent_is_banned( - self, module, stmt, - ); } } diff --git a/crates/ruff/src/rules/flake8_tidy_imports/snapshots/ruff__rules__flake8_tidy_imports__banned_api__tests__banned_api_true_positives.snap b/crates/ruff/src/rules/flake8_tidy_imports/snapshots/ruff__rules__flake8_tidy_imports__banned_api__tests__banned_api_true_positives.snap index eae0bd5078128..0fcbbaf94d1ea 100644 --- a/crates/ruff/src/rules/flake8_tidy_imports/snapshots/ruff__rules__flake8_tidy_imports__banned_api__tests__banned_api_true_positives.snap +++ b/crates/ruff/src/rules/flake8_tidy_imports/snapshots/ruff__rules__flake8_tidy_imports__banned_api__tests__banned_api_true_positives.snap @@ -113,6 +113,8 @@ TID251.py:33:1: TID251 `typing.TypedDict` is banned: Use typing_extensions.Typed 34 | import typing as totally_not_typing 35 | totally_not_typing.TypedDict | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TID251 +36 | +37 | # relative imports are respected |