List<RatedResolveResult> (@NotNull String name) { final PsiElement parent = getParentByStub(); if (parent instanceof PyFromImportStatement fromImportStatement) { final List<PsiElement> importedFiles = fromImportStatement.resolveImportSourceCandidates(); for (PsiElement importedFile : new HashSet<>(importedFiles)) { // resolver gives lots of duplicates final PyFile sourceFile = as(PyUtil.turnDirIntoInit(importedFile), PyFile.class); if (sourceFile != null && PyUtil.isStarImportableFrom(name, sourceFile)) { final PyModuleType moduleType = new PyModuleType(sourceFile); final var context = TypeEvalContext.codeInsightFallback(sourceFile.getProject()); final List<? extends RatedResolveResult> results = moduleType.resolveMember(name, null, AccessDirection.READ, PyResolveContext.defaultContext(context)); if (!ContainerUtil.isEmpty(results)) { return Lists.newArrayList(results); } } } } return Collections.emptyList(); }