diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/types/TypeEvalContextImpl.kt b/python/python-psi-impl/src/com/jetbrains/python/psi/types/TypeEvalContextImpl.kt index af1a0e279d46..4f4e7409690d 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/types/TypeEvalContextImpl.kt +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/types/TypeEvalContextImpl.kt @@ -47,6 +47,9 @@ open class TypeEvalContextImpl internal constructor( @ApiStatus.Internal val typeEngine: PyTypeEngine? = constraints.myOrigin?.let { + if (isNotebookExternalTypeEngineDisabled(it)) { + return@let null + } ModuleUtilCore.findModuleForFile(it) }?.let { module -> PyTypeEngineProvider.createTypeResolver(module) @@ -87,6 +90,12 @@ open class TypeEvalContextImpl internal constructor( return constraints.myAllowStubToAST && !element.inPyiFile() || inOrigin(element) } + private fun isNotebookExternalTypeEngineDisabled(origin: PsiFile): Boolean { + val realFile = origin.originalFile.virtualFile ?: return false + return realFile.extension.equals("ipynb", ignoreCase = true) && + !Registry.`is`("python.lsp.type.engine.notebooks", false) + } + @ApiStatus.Internal override fun isExternal(): Boolean = constraints.myIsExternal