public static PyFunctionType create(@NotNull PyCallable callable, @NotNull TypeEvalContext context) {
    List<PyCallableParameter> parameters = new ArrayList<>();
    for (PyParameter parameter : callable.getParameterList().getParameters()) {
      if (parameter instanceof PyNamedParameter namedParameter &&
          namedParameter.isKeywordContainer() &&
          context.getType(namedParameter) instanceof PyTypedDictType typedDictType) {
        List<PyCallableParameter> typedDictParameters = typedDictType.toClass().getParameters(context);
        parameters.addAll(ContainerUtil.notNullize(typedDictParameters));
      }
      else {
        parameters.add(PyCallableParameterImpl.psi(parameter));
      }
    }
    return new PyFunctionTypeImpl(callable, parameters);
  }
public static PyFunctionType create(@NotNull PyCallable callable, @NotNull TypeEvalContext context)