mirror of
https://github.com/python/cpython.git
synced 2025-08-09 03:19:15 +00:00
[3.12] gh-112414: Fix AttributeError
when calling repr()
on a namespace package imported with a custom loader (GH-112425) (#112440)
gh-112414: Fix `AttributeError` when calling `repr()` on a namespace package imported with a custom loader (GH-112425)
(cherry picked from commit 0622839cfe
)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
parent
42df73652d
commit
f9861e69c9
4 changed files with 16 additions and 3 deletions
|
@ -824,10 +824,16 @@ def _module_repr_from_spec(spec):
|
|||
"""Return the repr to use for the module."""
|
||||
name = '?' if spec.name is None else spec.name
|
||||
if spec.origin is None:
|
||||
if spec.loader is None:
|
||||
loader = spec.loader
|
||||
if loader is None:
|
||||
return f'<module {name!r}>'
|
||||
elif (
|
||||
_bootstrap_external is not None
|
||||
and isinstance(loader, _bootstrap_external.NamespaceLoader)
|
||||
):
|
||||
return f'<module {name!r} (namespace) from {list(loader._path)}>'
|
||||
else:
|
||||
return f'<module {name!r} (namespace) from {list(spec.loader._path)}>'
|
||||
return f'<module {name!r} ({loader!r})>'
|
||||
else:
|
||||
if spec.has_location:
|
||||
return f'<module {name!r} from {spec.origin!r}>'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue