public Object[] getCompletionVariants( String completionPrefix, PsiElement location, ProcessingContext context) { List<LookupElement> result = new ArrayList<LookupElement>(); ScopeOwner scopeOwner = ScopeUtil.getScopeOwner(location); assert scopeOwner != null; final List<PyImportElement> importTargets = PyModuleType.getVisibleImports(scopeOwner); final int imported = myImportedModule.getImportedPrefix().getComponentCount(); for (PyImportElement importTarget : importTargets) { final QualifiedName qName = importTarget.getImportedQName(); if (qName != null && qName.matchesPrefix(myImportedModule.getImportedPrefix())) { final List<String> components = qName.getComponents(); if (components.size() > imported) { String module = components.get(imported); result.add(LookupElementBuilder.create(module)); } } } return result.toArray(new Object[result.size()]); }