Skip to content

gh-84530: Introduce a new type for namespace packages #19917

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

caje731
Copy link
Contributor

@caje731 caje731 commented May 5, 2020

This PR fixes modulefinder.py's module-loader to handle namespace packages differently than regular packages, and in doing so introduces a separate type for namespace packages.

https://bugs.python.org/issue40350

Copy link
Contributor

@ZackerySpytz ZackerySpytz left a comment

Choose a reason for hiding this comment

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

Please add a news entry.

@JulienRobitaille
Copy link

JulienRobitaille commented Jan 27, 2021

May I suggest using the submodule_search_locations when it is a namespace package.
I think that it would be correct to use submodule_search_locations because PEP 451 mention this:

"submodule_search_locations" can be deduced from loader.is_package() and from os.path.dirname(location) if location is a filename.

I think the return would look something like the one done for the is_package condition.

 if spec.loader is None and spec.submodule_search_locations:
        return None, os.path.dirname(str(spec.submodule_search_locations)), ("", "", _PKG_DIRECTORY)

@the-knights-who-say-ni
Copy link

Hello, and thanks for your contribution!

I'm a bot set up to make sure that the project can legally accept this contribution by verifying everyone involved has signed the PSF contributor agreement (CLA).

Recognized GitHub username

We couldn't find a bugs.python.org (b.p.o) account corresponding to the following GitHub usernames:

@cro-qwello

This might be simply due to a missing "GitHub Name" entry in one's b.p.o account settings. This is necessary for legal reasons before we can look at this contribution. Please follow the steps outlined in the CPython devguide to rectify this issue.

You can check yourself to see if the CLA has been received.

Thanks again for the contribution, we look forward to reviewing it!

@rs2
Copy link

rs2 commented Jul 18, 2021

While this fix appears to solve the top-level namespace package, it seems to fail on solving the nested namespace packages, i.e. from foo.bar.baz import qux, where both /foo and /foo/bar are missing __init__.py.

@picnixz picnixz changed the title bpo-40350 Introduce a new type for namespace packages gh-84530: Introduce a new type for namespace packages Dec 3, 2024
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.

8 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy