bpo-32303 - Consistency fixes for namespace loaders (#5481)

* Make sure ``__spec__.loader`` matches ``__loader__`` for namespace packages.
* Make sure ``__spec__.origin` matches ``__file__`` for namespace packages.

https://bugs.python.org/issue32303
https://bugs.python.org/issue32305
This commit is contained in:
Barry Warsaw 2018-02-02 15:15:58 -05:00 committed by GitHub
parent 383b32fe10
commit bbbcf8693b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 1478 additions and 1436 deletions

View file

@ -1276,9 +1276,9 @@ class PathFinder:
elif spec.loader is None:
namespace_path = spec.submodule_search_locations
if namespace_path:
# We found at least one namespace path. Return a
# spec which can create the namespace package.
spec.origin = 'namespace'
# We found at least one namespace path. Return a spec which
# can create the namespace package.
spec.origin = None
spec.submodule_search_locations = _NamespacePath(fullname, namespace_path, cls._get_spec)
return spec
else: