@Nullable
  private static @NlsSafe String calculatePossibleCalleeRepresentation(@NotNull PyCallableType callableType,
                                                                       @NotNull TypeEvalContext context) {
    final String name = callableType.getCallable() != null ? callableType.getCallable().getName() : "";
    final List<PyCallableParameter> callableParameters = callableType.getParameters(context);
    if (callableParameters == null) return null;

    final String parameters = ParamHelper.getPresentableText(callableParameters, true, context);
    final String callableNameAndParameters = name + parameters;

    return Optional
      .ofNullable(PyUtil.as(callableType.getCallable(), PyFunction.class))
      .map(PyFunction::getContainingClass)
      .map(PyClass::getName)
      .map(className -> PyNames.INIT.equals(name) ? className + parameters : className + "." + callableNameAndParameters)
      .orElse(callableNameAndParameters);
  }
@Nullable
  private static @NlsSafe String calculatePossibleCalleeRepresentation(@NotNull PyCallableType callableType,
                                                                       @NotNull TypeEvalContext context)