Skip to content

Commit 63ef41e

Browse files
Bordalexierule
authored andcommitted
fix: keep pre versions (#14752)
1 parent 4262cf8 commit 63ef41e

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

.actions/assistant.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import os
55
import re
66
import shutil
7-
from distutils.version import LooseVersion, StrictVersion
7+
from distutils.version import LooseVersion
88
from importlib.util import module_from_spec, spec_from_file_location
99
from itertools import chain
1010
from pathlib import Path
@@ -16,6 +16,7 @@
1616

1717
import fire
1818
import pkg_resources
19+
from packaging.version import parse as version_parse
1920

2021
REQUIREMENT_FILES = {
2122
"pytorch": (
@@ -30,15 +31,20 @@
3031
PACKAGE_MAPPING = {"app": "lightning-app", "pytorch": "pytorch-lightning"}
3132

3233

33-
def pypi_versions(package_name: str) -> List[str]:
34-
"""Return a list of released versions of a provided pypi name."""
34+
def pypi_versions(package_name: str, drop_pre: bool = True) -> List[str]:
35+
"""Return a list of released versions of a provided pypi name.
36+
37+
>>> _ = pypi_versions("lightning_app", drop_pre=False)
38+
"""
3539
# https://stackoverflow.com/a/27239645/4521646
3640
url = f"https://pypi.org/pypi/{package_name}/json"
3741
data = json.load(urlopen(Request(url)))
3842
versions = list(data["releases"].keys())
3943
# todo: drop this line after cleaning Pypi history from invalid versions
40-
versions = list(filter(lambda v: v.count(".") == 2 and "rc" not in v, versions))
41-
versions.sort(key=StrictVersion)
44+
versions = list(filter(lambda v: v.count(".") == 2, versions))
45+
if drop_pre:
46+
versions = list(filter(lambda v: all(c not in v for c in ["rc", "dev"]), versions))
47+
versions.sort(key=version_parse)
4248
return versions
4349

4450

@@ -122,7 +128,7 @@ def download_package(package: str, folder: str = ".", version: Optional[str] = N
122128
url = f"https://pypi.org/pypi/{PACKAGE_MAPPING[package]}/json"
123129
data = json.load(urlopen(Request(url)))
124130
if not version:
125-
pypi_vers = pypi_versions(PACKAGE_MAPPING[package])
131+
pypi_vers = pypi_versions(PACKAGE_MAPPING[package], drop_pre=False)
126132
version = pypi_vers[-1]
127133
releases = list(filter(lambda r: r["packagetype"] == "sdist", data["releases"][version]))
128134
assert releases, f"Missing 'sdist' for this package/version aka {package}/{version}"

0 commit comments

Comments
 (0)