Write original meta to json/

This commit is contained in:
taoky 2024-08-06 18:03:26 +08:00
parent b97754ce34
commit 231b891565

View File

@ -16,6 +16,7 @@ import sqlite3
from concurrent.futures import ThreadPoolExecutor, as_completed from concurrent.futures import ThreadPoolExecutor, as_completed
import signal import signal
import tomllib import tomllib
from copy import deepcopy
import requests import requests
import click import click
from tqdm import tqdm from tqdm import tqdm
@ -337,7 +338,7 @@ class PyPI:
"_last-serial": str(package_meta["last_serial"]), "_last-serial": str(package_meta["last_serial"]),
}, },
"name": package_meta["info"]["name"], "name": package_meta["info"]["name"],
# TODO: Just sorting by default sort - Maybe specify order in future PEP # (bandsnatch) TODO: Just sorting by default sort - Maybe specify order in future PEP
"versions": sorted(package_meta["releases"].keys()), "versions": sorted(package_meta["releases"].keys()),
} }
@ -638,6 +639,7 @@ class SyncPyPI(SyncBase):
package_simple_path.mkdir(exist_ok=True) package_simple_path.mkdir(exist_ok=True)
try: try:
meta = self.pypi.get_package_metadata(package_name) meta = self.pypi.get_package_metadata(package_name)
meta_original = deepcopy(meta)
logger.debug("%s meta: %s", package_name, meta) logger.debug("%s meta: %s", package_name, meta)
except PackageNotFoundError: except PackageNotFoundError:
logger.warning( logger.warning(
@ -690,7 +692,8 @@ class SyncPyPI(SyncBase):
self.write_meta_to_simple(package_simple_path, meta) self.write_meta_to_simple(package_simple_path, meta)
json_meta_path = self.jsonmeta_dir / package_name json_meta_path = self.jsonmeta_dir / package_name
with overwrite(json_meta_path) as f: with overwrite(json_meta_path) as f:
json.dump(meta, f) # Note that we're writing meta_original here!
json.dump(meta_original, f)
if use_db: if use_db:
self.local_db.set(package_name, last_serial) self.local_db.set(package_name, last_serial)
@ -724,6 +727,7 @@ class SyncPlainHTTP(SyncBase):
use_db: bool = True, use_db: bool = True,
) -> Optional[int]: ) -> Optional[int]:
if prerelease_excludes: if prerelease_excludes:
# TODO
logger.warning( logger.warning(
"prerelease_excludes is currently ignored in SyncPlainHTTP mode." "prerelease_excludes is currently ignored in SyncPlainHTTP mode."
) )