Skip to content

gh-155194: Fix not raising on non-module import - #155189

Open
DinoV wants to merge 4 commits into
python:mainfrom
DinoV:lazy_fixes_main
Open

gh-155194: Fix not raising on non-module import#155189
DinoV wants to merge 4 commits into
python:mainfrom
DinoV:lazy_fixes_main

Conversation

@DinoV

@DinoV DinoV commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

As initially reported here: https://discuss.python.org/t/sys-lazy-modules-clarification/108385

lazy import math.pi has divergent behavior from import math.pi. Currently we allow this to work and just give you the math module. Instead we should raise ModuleNotFoundError because math.pi is not a module.

@DinoV DinoV changed the title Fix not raising on non-module import gh-155194: Fix not raising on non-module import Aug 4, 2026
@DinoV DinoV added the skip news label Aug 4, 2026
@DinoV
DinoV force-pushed the lazy_fixes_main branch from c802817 to 599c8d5 Compare August 4, 2026 21:40
@DinoV
DinoV marked this pull request as ready for review August 4, 2026 22:49
Comment thread Python/import.c

@pablogsal pablogsal left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only one small comment

""")
assert_python_ok("-c", code)

def test_missing_attribute_raises_import_error(self):

@pablogsal pablogsal Aug 11, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I am misreading this but i think this covers a different path. lazy import math.pi as pi still resolves pi to the float instead of raising.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants