diff options
author | markmcclain <markmcclain@users.noreply.github.com> | 2019-03-29 04:13:06 -0400 |
---|---|---|
committer | Claudiu Popa <pcmanticore@gmail.com> | 2019-03-29 09:13:06 +0100 |
commit | 70ed2cfd68e71a98697b1c13c337499732a801dc (patch) | |
tree | dd289537f24de144d7d2b4591ff5dc2576774bc7 /astroid/modutils.py | |
parent | 79d5a3a783cf0b5a729e4e467508e955a0cca55f (diff) | |
download | astroid-git-70ed2cfd68e71a98697b1c13c337499732a801dc.tar.gz |
make is_standard_module() properly classify extensions (#659)
Extensions can be installed in either a platform independent or specific
location[1]. The search is updated to include both paths. Previously, an
extension in the platform specific location would be misclassified because
only the independent location was considered and the platform specific location
shared a prefix with the standard lib.
[1] http://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_python_lib
Fixes Issue: #658
Co-authored-by: Matt Story <s.matt.story@gmail.com>
Diffstat (limited to 'astroid/modutils.py')
-rw-r--r-- | astroid/modutils.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/astroid/modutils.py b/astroid/modutils.py index df75a901..cc5fc56f 100644 --- a/astroid/modutils.py +++ b/astroid/modutils.py @@ -116,7 +116,7 @@ if os.name == "posix": # https://github.com/PyCQA/pylint/issues/712#issuecomment-163178753 STD_LIB_DIRS.add(_posix_path("lib64")) -EXT_LIB_DIR = get_python_lib() +EXT_LIB_DIRS = {get_python_lib(), get_python_lib(True)} IS_JYTHON = platform.python_implementation() == "Jython" BUILTIN_MODULES = dict.fromkeys(sys.builtin_module_names, True) @@ -596,8 +596,9 @@ def is_standard_module(modname, std_path=None): # we assume there are no namespaces in stdlib return not util.is_namespace(modname) filename = _normalize_path(filename) - if filename.startswith(_cache_normalize_path(EXT_LIB_DIR)): - return False + for path in EXT_LIB_DIRS: + if filename.startswith(_cache_normalize_path(path)): + return False if std_path is None: std_path = STD_LIB_DIRS for path in std_path: |