@Override
  public @Nullable PyArgumentList findElementForParameterInfo(@NotNull CreateParameterInfoContext context) {
    PsiFile file = context.getFile();
    int offset = context.getOffset();
    final PyArgumentList argumentList = PyParameterInfoUtils.findArgumentList(file, offset, -1);

    List<Pair<PyCallExpression, PyCallableType>> parameterInfos = PyParameterInfoUtils.findCallCandidates(argumentList);
    if (parameterInfos != null) {
      if (parameterInfos.size() > MAX_PARAMETER_INFO_TO_SHOW) {
        parameterInfos = parameterInfos.subList(0, MAX_PARAMETER_INFO_TO_SHOW);
      }
      List<PyParameterInfoUtils.CallInfo> infos = new ArrayList<>();

      boolean isFirst = true;
      for (Pair<PyCallExpression, PyCallableType> paramInfo : parameterInfos) {
        infos.add(new PyParameterInfoUtils.CallInfo(paramInfo.first, paramInfo.second, isFirst || hideOverloads));
        isFirst = false;
      }

      Object[] infoArr = infos.toArray();
      setDisplayAllOverloadsState(infoArr, hideOverloads);
      context.setItemsToShow(infoArr);
      myObjectsToShow = infoArr;
      return argumentList;
    }

    return null;
  }
@Override
  public @Nullable PyArgumentList findElementForParameterInfo(@NotNull CreateParameterInfoContext context)