aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcorrectmost <134317971+correctmost@users.noreply.github.com>2024-05-10 15:46:58 -0400
committerDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2024-05-11 10:02:41 +0200
commit2c38c0275b790265ab450b79e8dc602e651ca9d3 (patch)
treed7637a8c4234731b6903a0e1fa487ce5c8a61f35
parent0ccc2e29d4b9ce0f54f9e50fa6df85522083c5de (diff)
downloadastroid-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.py2
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