summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-03-17 08:11:54 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2016-03-17 08:11:54 (GMT)
commitec748c47ac2540fbc7b97e9d1efab1233003af1a (patch)
treeaad4b1d233fb022ecae2053fd0e843a44e00206b
parent499d3654a86a55ce7b727a31b6fea8e1ddb04508 (diff)
parent5c13aa156255d672aeee4d32bc0965e20c7d6c51 (diff)
downloadcpython-ec748c47ac2540fbc7b97e9d1efab1233003af1a.zip
cpython-ec748c47ac2540fbc7b97e9d1efab1233003af1a.tar.gz
cpython-ec748c47ac2540fbc7b97e9d1efab1233003af1a.tar.bz2
Merge 3.5
-rw-r--r--Lib/pyclbr.py8
-rw-r--r--Misc/NEWS3
2 files changed, 8 insertions, 3 deletions
diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py
index dd58ada..4d40b87 100644
--- a/Lib/pyclbr.py
+++ b/Lib/pyclbr.py
@@ -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
diff --git a/Misc/NEWS b/Misc/NEWS
index 78423dd..af4f6c9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -226,6 +226,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.