diff options
author | correctmost <134317971+correctmost@users.noreply.github.com> | 2024-05-10 15:46:58 -0400 |
---|---|---|
committer | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2024-05-11 10:02:41 +0200 |
commit | 2c38c0275b790265ab450b79e8dc602e651ca9d3 (patch) | |
tree | d7637a8c4234731b6903a0e1fa487ce5c8a61f35 | |
parent | 0ccc2e29d4b9ce0f54f9e50fa6df85522083c5de (diff) | |
download | astroid-upstream-main.tar.gz |
Improve performance of _get_zipimportersupstream-main
_get_zipimporters can call isinstance millions of times when
running pylint's import-error checker on a codebase like yt-dlp.
Checking for None first avoids the overhead of invoking isinstance.
Closes pylint-dev/pylint#9607.
-rw-r--r-- | astroid/interpreter/_import/spec.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/astroid/interpreter/_import/spec.py b/astroid/interpreter/_import/spec.py index 469508da..59546a01 100644 --- a/astroid/interpreter/_import/spec.py +++ b/astroid/interpreter/_import/spec.py @@ -341,7 +341,7 @@ def _is_setuptools_namespace(location: pathlib.Path) -> bool: def _get_zipimporters() -> Iterator[tuple[str, zipimport.zipimporter]]: for filepath, importer in sys.path_importer_cache.items(): - if isinstance(importer, zipimport.zipimporter): + if importer is not None and isinstance(importer, zipimport.zipimporter): yield filepath, importer |