Fix links in PyPI Simple Repository API page (#30594)

Thanks to @Zottelchen for looking into problem and proposing the fix.

Ref: https://github.com/astral-sh/uv/issues/3017 ,
https://peps.python.org/pep-0503/

This PR's change is from Zottelchen's work.

And I by the way rename the `$p` to `$pd` because `p` is used as
"package" in code, while `pd` is used as "package description".

----

Co-authored-by: Zottelchen
This commit is contained in:
wxiaoguang 2024-04-20 09:15:14 +08:00 committed by GitHub
parent cb6814adad
commit 89e39872ff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

AI 샘플 코드 생성 중입니다

Loading...
2 changed files with 4 additions and 3 deletions

View File

@ -4,11 +4,12 @@
<title>Links for {{.PackageDescriptor.Package.Name}}</title> <title>Links for {{.PackageDescriptor.Package.Name}}</title>
</head> </head>
<body> <body>
{{- /* PEP 503 Simple Repository API: https://peps.python.org/pep-0503/ */ -}}
<h1>Links for {{.PackageDescriptor.Package.Name}}</h1> <h1>Links for {{.PackageDescriptor.Package.Name}}</h1>
{{range .PackageDescriptors}} {{range .PackageDescriptors}}
{{$p := .}} {{$pd := .}}
{{range .Files}} {{range .Files}}
<a href="{{$.RegistryURL}}/files/{{$p.Package.LowerName}}/{{$p.Version.Version}}/{{.File.Name}}#sha256-{{.Blob.HashSHA256}}"{{if $p.Metadata.RequiresPython}} data-requires-python="{{$p.Metadata.RequiresPython}}"{{end}}>{{.File.Name}}</a><br> <a href="{{$.RegistryURL}}/files/{{$pd.Package.LowerName}}/{{$pd.Version.Version}}/{{.File.Name}}#sha256={{.Blob.HashSHA256}}"{{if $pd.Metadata.RequiresPython}} data-requires-python="{{$pd.Metadata.RequiresPython}}"{{end}}>{{.File.Name}}</a><br>
{{end}} {{end}}
{{end}} {{end}}
</body> </body>

View File

@ -164,7 +164,7 @@ func TestPackagePyPI(t *testing.T) {
nodes := htmlDoc.doc.Find("a").Nodes nodes := htmlDoc.doc.Find("a").Nodes
assert.Len(t, nodes, 2) assert.Len(t, nodes, 2)
hrefMatcher := regexp.MustCompile(fmt.Sprintf(`%s/files/%s/%s/test\..+#sha256-%s`, root, regexp.QuoteMeta(packageName), regexp.QuoteMeta(packageVersion), hashSHA256)) hrefMatcher := regexp.MustCompile(fmt.Sprintf(`%s/files/%s/%s/test\..+#sha256=%s`, root, regexp.QuoteMeta(packageName), regexp.QuoteMeta(packageVersion), hashSHA256))
for _, a := range nodes { for _, a := range nodes {
for _, att := range a.Attr { for _, att := range a.Attr {