final protected PyImportElement @NotNull [] getImportElements(
    @NotNull IElementType importElementType,
    @NotNull PyElementType importKeywordToken) {
    final PyFromImportStatementStub stub = getStub();
    if (stub != null) {
      return stub.getChildrenByType(importElementType, count -> new PyImportElement[count]);
    }
    List<PyImportElement> result = new ArrayList<>();
    final ASTNode importKeyword = getNode().findChildByType(importKeywordToken);
    if (importKeyword != null) {
      for (ASTNode node = importKeyword.getTreeNext(); node != null; node = node.getTreeNext()) {
        if (node.getElementType() == importElementType) {
          result.add((PyImportElement)node.getPsi());
        }
      }
    }
    return result.toArray(new PyImportElement[0]);
  }
final protected PyImportElement @NotNull [] getImportElements(
    @NotNull IElementType importElementType,
    @NotNull PyElementType importKeywordToken)