diff options
Diffstat (limited to 'pypi/version.scm')
-rw-r--r-- | pypi/version.scm | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pypi/version.scm b/pypi/version.scm new file mode 100644 index 0000000..e4d0b35 --- /dev/null +++ b/pypi/version.scm @@ -0,0 +1,18 @@ +(define-module (pypi version) + #:use-module (pyguile) + #:export (sort-versions)) + +(define (sort-versions versions) + (if (null? versions) + versions + (begin + (python-eval "from packaging.version import parse") + (let + ((sort + (python-eval + "lambda vs: [s for s, v in sorted([(s, parse(s)) for s in vs], key=lambda x: x[1], reverse=True)]" + #t))) + (python-apply + sort + (list versions) + '()))))) |