void (@NotNull String packageName, @NotNull CatchingConsumer<? super List<String>, ? super Exception> callback) { ApplicationManager.getApplication().executeOnPooledThread(() -> { try { final List<String> releasesFromSimpleIndex = getPackageVersionsFromAdditionalRepositories(packageName); if (releasesFromSimpleIndex.isEmpty()) { final List<String> releasesFromPyPI = getPackageVersionsFromPyPI(packageName, true); callback.consume(releasesFromPyPI); } else { callback.consume(releasesFromSimpleIndex); } } catch (Exception e) { callback.consume(e); } }); }