Fix determining if there is installed package for some third-party stub in typeshed (PEP 591) (PY-34945)

Previously `typing_extensions.pyi` had not been considered as stub because pypi package is called `typing-extensions`

GitOrigin-RevId: a72abc97248b641a901a70213d6be410324d3322
This commit is contained in:
Semyon Proshev
2019-07-02 06:52:16 +03:00
committed by intellij-monorepo-bot
parent 5f2630859c
commit 5c4eb9b772
@@ -52,11 +52,14 @@ object PyTypeShed {
if (ApplicationManager.getApplication().isUnitTestMode) {
return true
}
val topLevelPackage = name.firstComponent ?: return false
val pyPIPackages = PyPIPackageUtil.PACKAGES_TOPLEVEL[topLevelPackage] ?: emptyList()
val packages = PyPackageManagers.getInstance().forSdk(sdk).packages ?: return true
return PyPackageUtil.findPackage(packages, topLevelPackage) != null ||
pyPIPackages.any { PyPackageUtil.findPackage(packages, it) != null }
val possiblePackage = name.firstComponent ?: return false
val alternativePossiblePackages = PyPIPackageUtil.PACKAGES_TOPLEVEL[possiblePackage] ?: emptyList()
val packageManager = PyPackageManagers.getInstance().forSdk(sdk)
val installedPackages = packageManager.packages ?: return true
return packageManager.parseRequirement(possiblePackage)?.match(installedPackages) != null ||
alternativePossiblePackages.any { PyPackageUtil.findPackage(installedPackages, it) != null }
}
return false
}