From 368ed9a4bb56c913c36e8031c59bbf46ec84017d Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 12 Mar 2021 13:57:54 +0100 Subject: Fix version sorting in mkvenv.py for requirements-pyinstaller (cherry picked from commit b45ac601c62a1638a86347546e6afee79ecdbcf8) --- scripts/mkvenv.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/scripts/mkvenv.py b/scripts/mkvenv.py index d510ba75b..a3b3bf32d 100755 --- a/scripts/mkvenv.py +++ b/scripts/mkvenv.py @@ -99,6 +99,18 @@ def parse_args(argv: List[str] = None) -> argparse.Namespace: return parser.parse_args(argv) +def _version_key(v): + """Sort PyQt requirement file prefixes. + + If we have a filename like requirements-pyqt-pyinstaller.txt, that should + always be sorted after all others (hence we return a "999" key). + """ + try: + return tuple(int(v) for c in v.split('.')) + except ValueError: + return 999 + + def pyqt_versions() -> List[str]: """Get a list of all available PyQt versions. @@ -110,8 +122,7 @@ def pyqt_versions() -> List[str]: for req in requirements_dir.glob('requirements-pyqt-*.txt'): version_set.add(req.stem.split('-')[-1]) - versions = sorted(version_set, - key=lambda v: [int(c) for c in v.split('.')]) + versions = sorted(version_set, key=_version_key) return versions + ['auto'] -- cgit v1.2.3-54-g00ecf