1
0
mirror of https://github.com/pypiserver/pypiserver synced 2025-02-22 19:19:37 +01:00

rework json_info, made url generic, restructured code

This commit is contained in:
awachtler 2021-07-18 07:21:19 +02:00
parent 43958e4548
commit d28fc966af
2 changed files with 14 additions and 10 deletions

@ -7,7 +7,7 @@ import typing as t
from pypiserver.bottle import Bottle
from pypiserver.config import Config, RunConfig, strtobool
version = __version__ = "2.0.0dev1"
version = __version__ = "2.0.0dev1aw"
__version_info__ = tuple(_re.split("[.-]", __version__))
__updated__ = "2020-10-11 11:23:15"

@ -366,15 +366,19 @@ def server_static(filename):
@app.route("/:project/json")
@auth("list")
def json_info(project):
rv = {}
releases = []
for x in config.backend.find_project_packages(project):
r = {x.version: [{"url": "http://localhost:8080/packages/" + x.relfn_unix}]}
releases.append(r)
rv["releases"] = releases
# todo check if this really that simple
max_version = max([r for r in releases.keys()])
rv = {"info" : {"version": max_version}}
packages = sorted(
config.backend.find_project_packages(project),
key=lambda x: x.parsed_version, reverse=True
)
max_version = packages[0].version
releases = {}
req_url = request.url
for x in packages:
releases[x.version] = [{"url": urljoin(req_url, "../../packages/" + x.relfn)}]
rv = {
"info" : {"version": max_version},
"releases" : releases
}
response.content_type = 'application/json'
return dumps(rv)