public static @NotNull List<String> parsePackageVersionsFromArchives(@NotNull String archivesUrl,
                                                                       @NotNull String packageName) throws IOException {
    return HttpRequests.request(archivesUrl).userAgent(getUserAgent()).connect(request -> {
      final List<String> versions = new ArrayList<>();
      final Reader reader = request.getReader();
      new ParserDelegator().parse(reader, new HTMLEditorKit.ParserCallback() {
        HTML.Tag myTag;

        @Override
        public void handleStartTag(HTML.Tag tag, MutableAttributeSet set, int i) {
          myTag = tag;
        }

        @Override
        public void handleText(char @NotNull [] data, int pos) {
          if (myTag != null && "a".equals(myTag.toString())) {
            final String artifactName = String.valueOf(data);
            final String version = extractVersionFromArtifactName(artifactName, packageName);
            if (version != null) {
              versions.add(version);
            }
            else {
              LOG.debug("Could not extract version from " + artifactName + " at " + archivesUrl);
            }
          }
        }
      }, true);
      versions.sort(PyPackageVersionComparator.getSTR_COMPARATOR().reversed());
      return versions;
    });
  }
public static @NotNull List<String> parsePackageVersionsFromArchives(@NotNull String archivesUrl,
                                                                       @NotNull String packageName)