Skip to content

Commit ec0aa90

Browse files
committed
ref: separate out _get_metadata_bytes
1 parent 084596f commit ec0aa90

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

make_index.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,7 @@ def _commit_info() -> tuple[str, int]:
2525
return h, int(t)
2626

2727

28-
def _make_info(filename: str) -> dict[str, Any]:
29-
h, t = _commit_info()
30-
31-
with open(filename, "rb") as f:
32-
sha256 = hashlib.sha256(f.read()).hexdigest()
33-
34-
metadata_bytes = b""
35-
28+
def _get_metadata_bytes(filename: str) -> bytes:
3629
with zipfile.ZipFile(filename) as zipf:
3730
(metadata,) = (
3831
name
@@ -41,19 +34,29 @@ def _make_info(filename: str) -> dict[str, Any]:
4134
)
4235
with zipf.open(metadata) as f:
4336
metadata_bytes = f.read()
44-
metadata_sha256 = hashlib.sha256(metadata_bytes).hexdigest()
45-
info = email.message_from_bytes(metadata_bytes)
37+
return metadata_bytes
38+
39+
40+
def _make_info(filename: str) -> dict[str, Any]:
41+
h, t = _commit_info()
42+
43+
with open(filename, "rb") as f:
44+
sha256 = hashlib.sha256(f.read()).hexdigest()
45+
46+
metadata_bytes = _get_metadata_bytes(filename)
47+
metadata_sha256 = hashlib.sha256(metadata_bytes).hexdigest()
48+
info = email.message_from_bytes(metadata_bytes)
4649

4750
dist_info = {
4851
"requires_dist": info.get_all("requires-dist"),
4952
"requires_python": info.get("requires-python"),
5053
}
5154

55+
# this is intended to be exactly the structure dumb-pypi generates
5256
return {
5357
"filename": os.path.basename(filename),
5458
"hash": f"sha256={sha256}",
5559
"core_metadata": f"sha256={metadata_sha256}",
56-
"_metadata": metadata_bytes,
5760
"upload_timestamp": t,
5861
"uploaded_by": f"git@{h}",
5962
**{k: v for k, v in dist_info.items() if v},
@@ -99,13 +102,11 @@ def main(argv: Sequence[str] | None = None) -> int:
99102
seen.add(basename)
100103
package_info = _make_info(filename)
101104

102-
metadata_data = package_info.pop("_metadata")
103-
104105
new_packages.append(package_info)
105106
shutil.copy(filename, wheels_dir)
106107

107108
with open(f"{wheels_dir}/{basename}.metadata", "wb") as f:
108-
f.write(metadata_data)
109+
f.write(_get_metadata_bytes(filename))
109110

110111
with tempfile.TemporaryDirectory() as tmpdir:
111112
prev_json = os.path.join(tmpdir, "previous.json")

0 commit comments

Comments
 (0)