String (boolean includeDefaultValue, @Nullable TypeEvalContext context, @NotNull Predicate<PyType> typeFilter) { if (myElement instanceof PyNamedParameter || myElement == null) { final StringBuilder sb = new StringBuilder(); sb.append(ParamHelper.getNameInSignature(this)); boolean renderedAsTyped = false; if (context != null) { final PyType argumentType = getArgumentType(context); if (!typeFilter.test(argumentType)) { sb.append(": "); sb.append(PythonDocumentationProvider.getTypeDescription(argumentType, context)); renderedAsTyped = true; } } if (includeDefaultValue) { sb.append(ObjectUtils.notNull(ParamHelper.getDefaultValuePartInSignature(getDefaultValueText(), renderedAsTyped), "")); } return sb.toString(); } return PyUtil.getReadableRepr(myElement, false); }