Exemple #1
0
def package_versions_json(context, request):
    """Render the package versions in JSON format"""
    pkgs = _package_versions(context, request)
    if not isinstance(pkgs, dict):
        return pkgs
    response = {
        "info": {
            "name": context.name,
            "license": "",
            "classifiers": [],
        },
        "releases": {},
    }
    max_version = None
    for filename, pkg in pkgs["pkgs"].items():
        try:
            name, version_str = parse_filename(filename)
        except PackageParseError:
            continue
        version = pkg_resources.parse_version(version_str)
        if max_version is None or version > max_version:
            max_version = version

        release = {
            "filename": filename,
            "packagetype": get_packagetype(filename),
            "url": pkg.get("non_hashed_url", pkg["url"]),
            "requires_python": pkg["requires_python"],
        }
        if pkg.get("hash_sha256"):
            release["digests"] = {
                "md5": pkg["hash_md5"],
                "sha256": pkg["hash_sha256"]
            }
            release["md5_digest"] = pkg["hash_md5"]

        response["releases"].setdefault(version_str, []).append(release)
    if max_version is not None:
        response["info"]["version"] = str(max_version)
        response["urls"] = response["releases"].get(str(max_version), [])
    return response
Exemple #2
0
 def test_invalid(self):
     """get package type for invalid file name"""
     packagetype = util.get_packagetype("mypkg-1.1.tar")
     self.assertEqual(packagetype, "")
Exemple #3
0
 def test_wheel(self):
     """get package type for bdist_wheel"""
     packagetype = util.get_packagetype(
         "mypkg-1.1-cp38-cp38-manylinux2010_x86_64.whl")
     self.assertEqual(packagetype, "bdist_wheel")
Exemple #4
0
 def test_egg(self):
     """get package type for bdist_egg"""
     packagetype = util.get_packagetype("mypkg-1.1-py3.7-linux-x86_64.egg")
     self.assertEqual(packagetype, "bdist_egg")
Exemple #5
0
 def test_sdist(self):
     """get package type for sdist"""
     packagetype = util.get_packagetype("mypkg-1.1.tar.gz")
     self.assertEqual(packagetype, "sdist")