Handle nested imports correctly in from ... import#15026
Merged
Conversation
Contributor
|
dcreager
commented
Dec 16, 2024
MichaReiser
reviewed
Dec 17, 2024
AlexWaygood
approved these changes
Dec 17, 2024
Member
AlexWaygood
left a comment
There was a problem hiding this comment.
Nice! I like the use of early return
AlexWaygood
reviewed
Dec 17, 2024
* main: [red-knot] Explicitly test diagnostics are emitted for unresolvable submodule imports (#15035) Fix stale File status in tests (#15030) [red-knot] Basic support for other legacy `typing` aliases (#14998) feat(AIR302): extend the following rules (#15015) [`perflint`] Simplify finding the loop target in `PERF401` (#15025) [red-knot] Avoid undeclared path when raising conflicting declarations (#14958)
dcreager
commented
Dec 17, 2024
crates/red_knot_python_semantic/resources/mdtest/import/relative.md
Outdated
Show resolved
Hide resolved
carljm
approved these changes
Dec 17, 2024
crates/red_knot_python_semantic/resources/mdtest/import/relative.md
Outdated
Show resolved
Hide resolved
carljm
approved these changes
Dec 17, 2024
Member
Author
Details 😄 |
carljm
approved these changes
Dec 17, 2024
This was referenced Dec 17, 2024
dcreager
added a commit
that referenced
this pull request
Dec 17, 2024
This tweaks the new semantics from #15026 a bit when a symbol could be interpreted both as an attribute and a submodule of a package. For `from...import`, we should actually prioritize the attribute, because of how the statement itself is implemented [1]. > 1. check if the imported module has an attribute by that name > 2. if not, attempt to import a submodule with that name and then check the imported module again for that attribute [1] https://docs.python.org/3/reference/simple_stmts.html#the-import-statement
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#14946 fixed our handling of nested imports with the
importstatement, but didn't touchfrom...importstatements.cf #14826 (comment)