@Override
    public AnAction[] getActions(@NotNull List<? extends DirectoryProjectGenerator<?>> generators, @NotNull AbstractCallback<PyNewProjectSettings> callback) {
      generators = new ArrayList<>(generators);
      generators.sort(Comparator.comparing(DirectoryProjectGenerator::getName));
      generators.sort(Comparator.comparingInt(value -> {
        if (value instanceof PyFrameworkProjectGenerator) {
          return -2;
        }
        if (value instanceof PythonProjectGenerator) {
          return -1;
        }
        return 0;
      }));

      if (useNewInterpreterCreationUi()) {
        //noinspection unchecked
        var map = StreamEx.of(generators)
          .map(generator -> new Pair<>(generator, getActions((DirectoryProjectGenerator<PyNewProjectSettings>)generator, callback)))
          .partitioningBy((pair) -> pair.first instanceof PythonProjectGenerator);

        var python = new DefaultActionGroup(PyCharmCommunityCustomizationBundle.message("new.project.python.group.name"),
                                            map.get(true).stream().flatMap(pair -> Arrays.stream(pair.second)).toList());
        var other = new CollapsedActionGroup(PyCharmCommunityCustomizationBundle.message("new.project.other.group.name"),
                                             map.get(false).stream().flatMap(pair -> Arrays.stream(pair.second)).toList());
        return new AnAction[] { python, other };
      }

      //noinspection unchecked
      return StreamEx.of(generators)
        .flatMap(generator -> StreamEx.of(getActions((DirectoryProjectGenerator<PyNewProjectSettings>)generator, callback)))
        .toArray(EMPTY_ARRAY);
    }
@Override
    public AnAction[] getActions(@NotNull List<? extends DirectoryProjectGenerator<?>> generators, @NotNull AbstractCallback<PyNewProjectSettings> callback)