mirror of
https://github.com/taoky/shadowmire.git
synced 2025-07-08 17:32:43 +00:00
Implement prerelease filter in SyncPlainHTTP
This commit is contained in:
parent
231b891565
commit
33e9746a46
@ -613,6 +613,12 @@ def download(
|
|||||||
return True, resp
|
return True, resp
|
||||||
|
|
||||||
|
|
||||||
|
def filter_release_from_meta(meta: dict, patterns: list[re.Pattern[str]]) -> None:
|
||||||
|
for release in list(meta["releases"].keys()):
|
||||||
|
if match_patterns(release, PRERELEASE_PATTERNS):
|
||||||
|
del meta["releases"][release]
|
||||||
|
|
||||||
|
|
||||||
class SyncPyPI(SyncBase):
|
class SyncPyPI(SyncBase):
|
||||||
def __init__(
|
def __init__(
|
||||||
self, basedir: Path, local_db: LocalVersionKV, sync_packages: bool = False
|
self, basedir: Path, local_db: LocalVersionKV, sync_packages: bool = False
|
||||||
@ -655,9 +661,7 @@ class SyncPyPI(SyncBase):
|
|||||||
|
|
||||||
# filter prerelease, if necessary
|
# filter prerelease, if necessary
|
||||||
if match_patterns(package_name, prerelease_excludes):
|
if match_patterns(package_name, prerelease_excludes):
|
||||||
for release in list(meta["releases"].keys()):
|
filter_release_from_meta(meta, PRERELEASE_PATTERNS)
|
||||||
if match_patterns(release, PRERELEASE_PATTERNS):
|
|
||||||
del meta["releases"][release]
|
|
||||||
|
|
||||||
if self.sync_packages:
|
if self.sync_packages:
|
||||||
# sync packages first, then sync index
|
# sync packages first, then sync index
|
||||||
@ -726,11 +730,6 @@ class SyncPlainHTTP(SyncBase):
|
|||||||
prerelease_excludes: list[re.Pattern[str]],
|
prerelease_excludes: list[re.Pattern[str]],
|
||||||
use_db: bool = True,
|
use_db: bool = True,
|
||||||
) -> Optional[int]:
|
) -> Optional[int]:
|
||||||
if prerelease_excludes:
|
|
||||||
# TODO
|
|
||||||
logger.warning(
|
|
||||||
"prerelease_excludes is currently ignored in SyncPlainHTTP mode."
|
|
||||||
)
|
|
||||||
logger.info("updating %s", package_name)
|
logger.info("updating %s", package_name)
|
||||||
package_simple_path = self.simple_dir / package_name
|
package_simple_path = self.simple_dir / package_name
|
||||||
package_simple_path.mkdir(exist_ok=True)
|
package_simple_path.mkdir(exist_ok=True)
|
||||||
@ -751,6 +750,9 @@ class SyncPlainHTTP(SyncBase):
|
|||||||
return None
|
return None
|
||||||
assert resp
|
assert resp
|
||||||
meta = resp.json()
|
meta = resp.json()
|
||||||
|
# filter prerelease, if necessary
|
||||||
|
if match_patterns(package_name, prerelease_excludes):
|
||||||
|
filter_release_from_meta(meta, PRERELEASE_PATTERNS)
|
||||||
|
|
||||||
if self.sync_packages:
|
if self.sync_packages:
|
||||||
release_files = PyPI.get_release_files_from_meta(meta)
|
release_files = PyPI.get_release_files_from_meta(meta)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user