Commit 21464a0c authored by Victor Stinner's avatar Victor Stinner

Fix pyclbr to support importing packages

Issue #26569: Fix pyclbr.readmodule() and pyclbr.readmodule_ex() to support
importing packages.
parent f8547d07
......@@ -142,10 +142,10 @@ def _readmodule(module, path, inpackage=None):
search_path = path + sys.path
# XXX This will change once issue19944 lands.
spec = importlib.util._find_spec_from_path(fullmodule, search_path)
fname = spec.loader.get_filename(fullmodule)
_modules[fullmodule] = dict
if spec.loader.is_package(fullmodule):
dict['__path__'] = [os.path.dirname(fname)]
# is module a package?
if spec.submodule_search_locations is not None:
dict['__path__'] = spec.submodule_search_locations
try:
source = spec.loader.get_source(fullmodule)
if source is None:
......@@ -154,6 +154,8 @@ def _readmodule(module, path, inpackage=None):
# not Python source, can't do anything with this module
return dict
fname = spec.loader.get_filename(fullmodule)
f = io.StringIO(source)
stack = [] # stack of (class, indent) pairs
......
......@@ -91,6 +91,9 @@ Core and Builtins
Library
-------
- Issue #26569: Fix :func:`pyclbr.readmodule` and :func:`pyclbr.readmodule_ex`
to support importing packages.
- Issue #26499: Account for remaining Content-Length in
HTTPResponse.readline() and read1(). Based on patch by Silent Ghost.
Also document that HTTPResponse now supports these methods.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment