mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Fixes issue 15039: namespace packages are no longer imported in preference to modules of the same name.
This commit is contained in:
parent
e6bdc8f2dd
commit
e51a36922f
7 changed files with 983 additions and 965 deletions
|
@ -1090,6 +1090,7 @@ class FileFinder:
|
|||
def find_loader(self, fullname):
|
||||
"""Try to find a loader for the specified module, or the namespace
|
||||
package portions. Returns (loader, list-of-portions)."""
|
||||
is_namespace = False
|
||||
tail_module = fullname.rpartition('.')[2]
|
||||
try:
|
||||
mtime = _os.stat(self.path).st_mtime
|
||||
|
@ -1115,14 +1116,17 @@ class FileFinder:
|
|||
if _path_isfile(full_path):
|
||||
return (loader(fullname, full_path), [base_path])
|
||||
else:
|
||||
# A namespace package, return the path
|
||||
return (None, [base_path])
|
||||
# A namespace package, return the path if we don't also
|
||||
# find a module in the next section.
|
||||
is_namespace = True
|
||||
# Check for a file w/ a proper suffix exists.
|
||||
for suffix, loader in self.modules:
|
||||
if cache_module + suffix in cache:
|
||||
full_path = _path_join(self.path, tail_module + suffix)
|
||||
if _path_isfile(full_path):
|
||||
return (loader(fullname, full_path), [])
|
||||
if is_namespace:
|
||||
return (None, [base_path])
|
||||
return (None, [])
|
||||
|
||||
def _fill_cache(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue