diff --git a/astroid/interpreter/_import/spec.py b/astroid/interpreter/_import/spec.py index 9628f7453..7e51cc10e 100644 --- a/astroid/interpreter/_import/spec.py +++ b/astroid/interpreter/_import/spec.py @@ -367,6 +367,7 @@ def contribute_to_path( ) +@lru_cache(maxsize=1024) def _is_setuptools_namespace(location: pathlib.Path) -> bool: try: with open(location / "__init__.py", "rb") as stream: diff --git a/astroid/manager.py b/astroid/manager.py index e1827ab88..163321b80 100644 --- a/astroid/manager.py +++ b/astroid/manager.py @@ -439,7 +439,10 @@ def clear_cache(self) -> None: # pylint: disable=import-outside-toplevel from astroid.brain.helpers import register_all_brains from astroid.inference_tip import clear_inference_tip_cache - from astroid.interpreter._import.spec import _find_spec + from astroid.interpreter._import.spec import ( + _find_spec, + _is_setuptools_namespace, + ) from astroid.interpreter.objectmodel import ObjectModel from astroid.nodes._base_nodes import LookupMixIn from astroid.nodes.scoped_nodes import ClassDef @@ -462,6 +465,7 @@ def clear_cache(self) -> None: ObjectModel.attributes, ClassDef._metaclass_lookup_attribute, _find_spec, + _is_setuptools_namespace, ): lru_cache.cache_clear() # type: ignore[attr-defined]