crates/ruff_linter/resources/mdtest/flake8-tidy-imports/lazy-import-immediately-resolved.md
lazy-import-immediately-resolved (TID255)target-version = "py315"
[lint]
preview = true
select = ["TID254", "TID255"]
flake8-tidy-imports.require-lazy = "all"
TID255 ignores imports that are required to be lazy to avoid a conflict with TID254, even if the
import is resolved immediately.
import foo # snapshot: lazy-import-mismatch
class Bar(foo.Base): ...
error[TID254]: Use a `lazy` import instead of an eager import
--> src/mdtest_snippet.py:1:8
|
1 | import foo # snapshot: lazy-import-mismatch
| ^^^
help: Convert to a lazy import
|
- import foo # snapshot: lazy-import-mismatch
1 + lazy import foo # snapshot: lazy-import-mismatch
2 |
|
note: This is an unsafe fix and may change runtime behavior
TID255 still reports immediately resolved names outside require-lazy, even when another name in
the same import is required to be lazy.
target-version = "py315"
[lint]
preview = true
select = ["TID254", "TID255"]
flake8-tidy-imports.require-lazy = ["foo", "pkg.Base"]
lazy import foo as required, bar
lazy from pkg import Base as RequiredBase, OtherBase
required.value
RequiredBase()
bar.value # error: [lazy-import-immediately-resolved]
OtherBase() # error: [lazy-import-immediately-resolved]