/** Fetches available package versions using JSON API of PyPI. */ @NotNull private List<String> getPackageVersionsFromPyPI(@NotNull String packageName, boolean force) throws IOException { final PackageDetails details = refreshAndGetPackageDetailsFromPyPI(packageName, force); final List<String> result = details.getReleases(); result.sort(PackageVersionComparator.VERSION_COMPARATOR.reversed()); return Collections.unmodifiableList(result); }
public void fillPackageDetails( @NotNull String packageName, @NotNull CatchingConsumer<PackageDetails.Info, Exception> callback) { ApplicationManager.getApplication() .executeOnPooledThread( () -> { try { final PackageDetails packageDetails = refreshAndGetPackageDetailsFromPyPI(packageName, false); callback.consume(packageDetails.getInfo()); } catch (IOException e) { callback.consume(e); } }); }