@Nullable
  public static PyDocumentationBuilder.DocstringFormatterRequest formatDocstring(@NotNull PsiElement element,
                                                                                 @NotNull PyDocumentationBuilder.DocstringFormatterRequest docstringFormatterRequest,
                                                                                 @NotNull List<String> flags) {
    Module module = DocStringParser.getModuleForElement(element);
    if (module == null) return new PyDocumentationBuilder.DocstringFormatterRequest();

    final String docstring = docstringFormatterRequest.getBody();
    final String preparedDocstring = PyIndentUtil.removeCommonIndent(docstring, true).trim();
    final DocStringFormat format = DocStringParser.guessDocStringFormat(preparedDocstring, element);

    if (format == DocStringFormat.PLAIN) {
      return null;
    }
    if (ApplicationManager.getApplication().isUnitTestMode()) {
      return new PyDocumentationBuilder.DocstringFormatterRequest("Unittest placeholder", docstringFormatterRequest.getFragments());
    }

    final PyDocumentationBuilder.DocstringFormatterRequest inputStructure =
      new PyDocumentationBuilder.DocstringFormatterRequest(preparedDocstring, docstringFormatterRequest.getFragments());

    try {
      final String outputStr = runDocstringFormatterService(flags, module, format, new Gson().toJson(inputStructure));
      return new Gson().fromJson(outputStr, PyDocumentationBuilder.DocstringFormatterRequest.class);
    }
    catch (JsonSyntaxException e) {
      return docstringFormatterRequest;
    }
  }
@Nullable
  public static PyDocumentationBuilder.DocstringFormatterRequest formatDocstring(@NotNull PsiElement element,
                                                                                 @NotNull PyDocumentationBuilder.DocstringFormatterRequest docstringFormatterRequest,
                                                                                 @NotNull List<String> flags)